ファイルの文字を配列に格納したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
じゅーず

ファイルの文字を配列に格納したい

#1

投稿記事 by じゅーず » 6年前

CSVファイルから値を読み込んで配列に格納し、格納した値を出力するというプログラムを作成しました。
しかし、実行結果でファイル内に書かれている値が出力されず全く違う値が表示されてしまいます。
どこが間違っていてどのように修正すればいいのか教えてください。

ファイルの内容はコードのあとに書きました。
実行結果はコード内の最後に記述しました。

コード:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
	int i;
	int A1[100], A2[100];
	FILE *fp;

	fp = fopen("comma.csv", "r");
	if (fp == NULL) {
		printf("ファイルは開けません\n");
		return 1;
	}
	else {
		printf("ファイルは開きました\n");
	}

	for (i = 0; i<5; i++) {
		fscanf(fp, "%[^,],%d", &(A1[i], A2[i]));     /*  1行読む  */
	}


	for (i = 0; i < 5; i++) {
		printf("%d		%d		\n", A1[i], A2[i]);
	}

	fclose(fp);

	return 0;
}

comma.csvの内容

1,37
2,19
3,20
4,91
5,7
6,11
7,21
8,68
9,63
10,89


実行結果

ファイルは開きました
49	49
12810	12810
13066	13066
13322	13212
13578	13578
続行するには何かキーを押してください・・・


Bull
記事: 149
登録日時: 9年前

Re: ファイルの文字を配列に格納したい

#2

投稿記事 by Bull » 6年前

ご提示のソースファイルではコンパイルエラーが出るようですが、どのように実行されましたか?

とりあえず 20 行目を

コード:

		fscanf(fp, "%d ,%d", &A1[i], &A2[i]);
とすれば、こちらではうまくいきました。

返信

“C言語何でも質問掲示板” へ戻る