Iam尝试将包含整数的文本文件读取到整数数组中。 如果输入是:1 3 4 5 6 (中间有空格)它工作正常。将逗号分隔的文件读取到整数数组中
但是,如果输入是:1,3,4,5,6(逗号分隔)。它只是打印1.(第一位数字)。如果程序发现1,3,4,5,6作为单个实体那么它应该打印 1,3,4,5,6作为第一个索引ryt? 而且File >> x,这个表达式是否通过检测两者之间的空间来逐个获取值?
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
int n = 0; //n is the number of the integers in the file ==> 12
int num;
int arr[100];
int x;
int sum = 0;
ifstream File;
File.open("integer.txt");
if(!File.is_open())
{
cout<<"It failed"<<endl;
return 0;
}
while(File>>x)
{
arr[n] = x;
n++;
}
File.close();
cout<<"n : "<<n<<endl;
for(int i=0;i<n;i++)
{
cout << arr[i] << " ";
}
return 0;
}
ptr + = count + 1是跳过分隔符 – KingOfWigs
请更新为什么这是downvoted? – KingOfWigs
因为OP使用的是C++而不是C,而'sscanf'是危险且不安全的。你还添加了另一个魔术数组'char line [200]',不必要地用复杂的指针变量复杂化代码,并使用'getline'成员函数,所有这些都是非常糟糕的编码风格。 –