fgetsで読み取った文字列を一文字ずつ配列変数に代入したい

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

fgetsで読み取った文字列を一文字ずつ配列変数に代入したい

#1

投稿記事 by ロコン » 7年前

fgetsで読み取った文字列を一文字ずつ二次元配列に代入しようとしたのですが上手く行きません。
どこがいけなかったのでしょうか?

コード:

#pragma warning(disable:4996)
#include <stdio.h>

int main() {
	char character[2048][128];
	int cnt = 0;
	int cnt2 = 0;
	FILE *fp;
	char buf[128];
	if ((fp = fopen("test.txt", "r")) != NULL) {
		while (fgets(buf, 128, fp) != NULL) {
			cnt2 = 0;
			while (buf[cnt2] != int('\0')); {
				character[cnt][cnt2] = buf[cnt2];
				printf("%c", character[cnt][cnt2]);
				cnt2++;
			} 
			cnt++;
		}		
	}
	while (1) {}
}

ロコン

Re: fgetsで読み取った文字列を一文字ずつ配列変数に代入したい

#2

投稿記事 by ロコン » 7年前

自己解決しました

コード:

#pragma warning(disable:4996)
#include <stdio.h>
#include <stdlib.h>

int main() {
	char character[2048][128];
	int cnt = 0;
	int cnt2 = 0;
	int cnt3 = 0;
	FILE *fp;
	char buf[128];
	if ((fp = fopen("test.txt", "r")) != NULL) {
		while (fgets(character[cnt], 128, fp) != NULL) {
			cnt++;
		}
		for (int i = 0; i < cnt; i++){
			cnt3 = 0;
			while (character[cnt2][cnt3] != '\0') {
				printf("%c", character[cnt2][cnt3]);
				//printf("%d,%d\n", cnt2, cnt3);
				cnt3++;
			}
			cnt2++;
		}
	}
	system("pause");
}
[/code]

返信

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