C言語で並列openmpをプログラミングしています。このコードを使用して.txtファイルから100万のデータを読み込みます。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」は、通常のコンピュータでプログラムを実行するとうまくいきます。しかし、並列化のためにクラスタ内で実行したいのであれば、次の警告が表示されます(警告:属性 'warn_unused_result [-Wunused-result]で宣言された' fscanf 'の戻り値を無視する) fscanf(data、 "%f %fを "& ID、& n)は、それが実行されません ) 。"
は、あなたがどのように代わりに "関数fscanf" の.txtファイルを読むための別の方法を知っていますか、 "関数fread"
?ありがとう
1.「それは動作しません」という状況については十分な説明ではありません。プログラムがコンパイルされないか、正しく実行されないのですか? 2. IDとnはintとして宣言されていますが、scanfはそれらをfloatとして扱います。それはどこでもうまくいったことはかなり素晴らしいです。 3. cordxとcordyの定義を追加できますか? – fvu
浮動小数点をintに読み込まないでください。うまくいかないでしょう。 – ThingyWotsit
あなたがそれらを読むときにIDとnをprintf()してください。それはまったく「標準的な」テスト/デバッグチェックです。あなたがそれらのようなことをしない限り、または実際のデバッガを使用して、あなたは進歩しません。 – ThingyWotsit