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'成員函數,所有這些都是非常糟糕的編碼風格。 –