ページ 11

ファイルの扱いについて

Posted: 2018年4月21日(土) 17:24
by じゅーず
CVSファイルを読み込み、読み込んだ文字列を出力するというプログラムです。
文字列を読み込ませる際にエラーが発生してしまい、思っている動作ができません。
どうして間違っているのか、どのように修正すれば出力されるのか教えてください。

CSVファイル内もコード内に記載します。

コード:

#include<stdio.h>
int main(void)
{
	int i;
	char S1[10];
	FILE *fp;

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

	for (i = 0; i < 7; i++) {
		fscanf(fp, "%s", S1[i]);
	}

	fclose(fp);

	for (i = 0; i < 7; i++) {
		printf("%s\n",S1[i]);
	}
	return 0;
}

goju.csvのファイル内容

あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
まみむめも


Re: ファイルの扱いについて

Posted: 2018年4月21日(土) 18:38
by ユーマ
試してないのでわかりませんが、
for (i = 0; i < 7; i++) {
fscanf(fp, "%s", S1);
}
のところはfscanf(fp, "%s", S1);だけでいいのではないのでしょうか。

間違っていたら申し訳ないです

Re: ファイルの扱いについて

Posted: 2018年4月21日(土) 18:46
by かずま
文字列を入れる場所が足りません。

コード:

    char S1[7][100]; に変更してみましょう。
 

Re: ファイルの扱いについて

Posted: 2018年4月21日(土) 19:01
by ユーマ
いま、試したところ自分の言ったことは間違っていました。
#3の方がおっしゃったことが正しいようです。

お騒がせしてしまいもうしわけないです。

Re: ファイルの扱いについて

Posted: 2018年4月21日(土) 21:27
by じゅーず
かずま さんが書きました:
7年前
ありがとうございました。
多次元配列を用いることで可能なのですね