Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 来自产生垃圾的文件的输入_C++_File_Input_Garbage - Fatal编程技术网

C++ 来自产生垃圾的文件的输入

C++ 来自产生垃圾的文件的输入,c++,file,input,garbage,C++,File,Input,Garbage,我正试图做一个程序来记录平均温度和降雨量。我有一个文本文件,每行有四个整数(每行代表一天),我想一次读取一行,每天处理每个变量 问题是我似乎无法将文件值读入变量。当我将变量打印到屏幕上时,它只打印垃圾。在下面的代码中,我尝试只处理文件的第一行。我怎样才能逐行阅读,一次一行 #include <iostream> #include <fstream> #include <string> using namespace std; int main() {

我正试图做一个程序来记录平均温度和降雨量。我有一个文本文件,每行有四个整数(每行代表一天),我想一次读取一行,每天处理每个变量

问题是我似乎无法将文件值读入变量。当我将变量打印到屏幕上时,它只打印垃圾。在下面的代码中,我尝试只处理文件的第一行。我怎样才能逐行阅读,一次一行

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
    {
    string fileName = "metrolog.dta";
    string buffer;
    int numOfDays = 0,
        dayNumber,
        maxTemp,
        minTemp,
        rainfall,
        tempDiff,
        tempDiffMax,
        totalMaxTemp,
        totalMinTemp,
        totalRainfall;

ifstream infile(fileName);

    while(getline(infile, buffer))
        if(!buffer.empty())
            ++numOfDays;

    cout << "Number of entries: " << numOfDays << endl;

    infile >> dayNumber >> minTemp >> maxTemp >> rainfall;
    cout << dayNumber << " " << minTemp << " " << maxTemp << " " << rainfall << endl;


    return 0;
    }
问题是

while(getline(infile, buffer))
        if(!buffer.empty())
            ++numOfDays;
读取,直到文件结束。然后在下次阅读时

infile >> dayNumber >> minTemp >> maxTemp >> rainfall;
由于
eof
标志设置为

cout << dayNumber << " " << minTemp << " " << maxTemp << " " << rainfall << endl;
另一种方法是读取文件并同时计算行数。你可以用它来做

infile.clear(); // clear error flags
infile.seekg(0, std::ios::beg); // set stream back to the beginning
while (infile >> dayNumber >> minTemp >> maxTemp >> rainfall)
{
    ++numOfDays;
    cout << dayNumber << " " << minTemp << " " << maxTemp << " " << rainfall << endl;
}
while(infle>>dayNumber>>minTemp>>maxTemp>>降雨)
{
++努莫日;
问题是

while(getline(infile, buffer))
        if(!buffer.empty())
            ++numOfDays;
一直读取到文件结束。然后在下次读取时

infile >> dayNumber >> minTemp >> maxTemp >> rainfall;
由于
eof
标志设置为

cout << dayNumber << " " << minTemp << " " << maxTemp << " " << rainfall << endl;
另一种方法是读取文件并同时计算行数

infile.clear(); // clear error flags
infile.seekg(0, std::ios::beg); // set stream back to the beginning
while (infile >> dayNumber >> minTemp >> maxTemp >> rainfall)
{
    ++numOfDays;
    cout << dayNumber << " " << minTemp << " " << maxTemp << " " << rainfall << endl;
}
while(infle>>dayNumber>>minTemp>>maxTemp>>降雨)
{
++努莫日;

你难道不能在@Untitled123中读取变量吗?@Untitled123她/他读取。
infle>>daynumer>>minTemp>>maxTemp>>rain雨;
@cad不是在读取整个文件并丢弃它之后读取的。因为你粘贴的行只有在读取整个文件之后才会执行。@AlgirdasPreidžius好的,但她/他尝试了。我读了我的t Untitled123的注释为“这些变量未初始化,从未尝试初始化。”老实说,我只是浏览了一下while循环的内容,发现它们是缺少的。你从来没有读过其中的变量,@Untitled123她/他读过。
infle>>daynumer>>minTemp>>maxTemp>>rain雨;
@cad没有读过整个文件并丢弃它。因为你粘贴的行只会在整个文件之后执行已经读过了。@AlgirdasPreidžius没问题,但她/他尝试了。我在123的评论中读到“这些变量未初始化,从未尝试过初始化。”老实说,我只是浏览了一下while循环的内容,发现其中缺少内容。当然,正确的解决方案是简单地计算第一次读取文件并随后输出的天数。当然,正确的解决方案是简单地计算第一次读取文件并输出的天数之后