C ++调用一个从txt文件输出信息的函数

时间:2014-01-23 03:19:11

标签: c++ string function

所以我是C ++的初学者,完全坚持一个问题。我有使用Java的背景,我试图申请,但我最终只是让自己感到困惑。我的老师真的没有在C ++上教过我们很多东西,所以我一直在研究和连续几个小时,以获得可以帮助我的东西。

问题在于: 编写一个C ++程序:

  1. 使用输入重定向来浏览各个部分的文件,并计算2660个课程中有多少是GER。将计数输出到屏幕。请注意,节号有时包含字母,因此您应该以字符串形式阅读(与课程编号相同)。
  2. 为每个部分调用一个函数。如果课程是GER并且有CSCE作为课程科目,该功能应输出课程科目和编号。
  3. 我已经完成了第一部分并且它正常工作。我使用的txt文件包含CRN,主题,课程编号,以及是/否,是否是2660种不同课程的GER。

    我的问题是2号。我还没有学会如何调用字符串甚至在这样的函数中使用字符串。

    这是我到目前为止所拥有的。第一部分我可能完全关闭但我的主要知道是正确的 非常感谢任何输入或正确方向的推动!感谢

    #include <iostream>
    #include <string>
    using namespace std;
    
    void printCsce(int total, int CRN, std::string subject, std::string courseNum, 
    std::string courseSection, std::string yesNo);
    
    void  printCsce(int total, int CRN, std::string subject, std::string courseNum,   
    std::string courseSection, std::string yesNo){
        total=2660;
        for (int i=0; i <total; i++){
        cin >> CRN;
        cin >> subject;
        cin >> courseNum;
        cin >> courseSection;
        cin >> yesNo;
    
        if (subject=="CSCE" && yesNo=="Yes"){
        std::cout << CRN << subject << endl;
    }
    }
    }
    
    int main()
    {
        int total=2660;
        int CRN;
        string subject;
        string courseNum;
        string courseSection;
        string yesNo;
        int sum=0;
    
        cin >> total;
        for (int i=0; i<total; i++)
        {
    cin >> CRN;
        cin >> subject;
        cin >> courseNum;
        cin >> courseSection;
        cin >> yesNo;
    
        if (yesNo=="Yes") {
         sum++;
        }
    }
    cout << "There are "<< sum << " courses that are GERS."<<  endl;
        cout << printCsce << endl;
    }
    

1 个答案:

答案 0 :(得分:1)

你必须参考你的论点。传递by-value时,编译器会创建副本,因此提取(cin >> x)仅影响对象的本地副本:

void printCsce(int& total, int& CRN, std::string& subject,
    std::string& courseNum, std::string& courseSection, std::string& yesNo);