我正在使用C語言編寫並行openmp,並使用此代碼從.txt文件中讀取一百萬個數據。在C程序中讀取文件.txt
FILE *data = NULL;
data = fopen("1millon.txt","r");
float ID, n, cord[1000000],cordy[1000000];
int ale = 1000000;
for(i=0;i<ale;i++){
fscanf (data, "%f %f", &ID, &n);
cordx[i]=ID;
cordy[i]=n;
}
其實這個「的fscanf」做得很好,當我在我的正常的計算機上運行我的程序。但是如果我想在並行化集羣中運行它,它會向我顯示下一個警告(警告:忽略'fscanf'的返回值,用屬性warn_unused_result聲明返回值[-Wunused-result] fscanf(data,「%f %F 「& ID,& N); ) ,它不會跑。」
你知道另一種方式如何閱讀,而不是 「的fscanf」 .txt文件, 「FREAD」
?謝謝
1.「它不會工作」不是的情況充分說明。程序是否編譯或者沒有正確運行? 2. ID和n被聲明爲整數,但您的scanf將它們視爲浮點數。非常神奇,這在任何地方都很順利。你能添加cordx和cordy的定義嗎? – fvu
不要將浮標讀入整數 - 它不會很好。 – ThingyWotsit
printf()讀取它們時的ID和n。這是一種「標準」測試/調試檢查。除非你做這些事情,或者使用實際的調試器,否則你不會進步。 – ThingyWotsit