fscanfでの読み込み

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

fscanfでの読み込み

#1

投稿記事 by ガムテープ » 14年前

メモ帳のデータを読み込んで表示するプログラムを作ろうとしているのですが
改行コードを読み込む方法がわかりません

条件はfscanfを使うということ以外は特にないです

コード:

#include<stdio.h>
main(){
	FILE *fp;
	int ch;

	/* ファイルオープン */
	if((fp = fopen("meiro.txt","r"))==NULL){
		printf("ファイルオープンエラー\n");
		exit(1);
	}

	/* ファイルのすべてのデータを1行ずつ読み込む */
	while((fscanf(fp,"%d",&ch))!=EOF){
		if(ch==1){
			printf("■");
		}
		else if(ch==0){
			printf("□");
		}
		else {
			printf("\n");
		}
	}
	/* ファイルクローズ */
	fclose(fp);
}
メモ帳(meiro.txt)
1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 1 0 1
1 1 1 0 0 0 1 1 0 1
1 0 1 0 1 0 0 1 0 1
1 0 1 0 1 1 0 1 0 1
1 0 0 0 1 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1

かずま

Re: fscanfでの読み込み

#2

投稿記事 by かずま » 14年前

ガムテープ さんが書きました:メモ帳のデータを読み込んで表示するプログラムを作ろうとしているのですが
改行コードを読み込む方法がわかりません

条件はfscanfを使うということ以外は特にないです
%c を使えばよいのでは?

コード:

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

int main(void)
{
    char ch;
 
    FILE *fp = fopen("meiro.txt", "r");
    if (!fp) printf("ファイルオープンエラー\n"), exit(1);

    while ((fscanf(fp, "%c", &ch)) == 1)
        if (ch == '1') printf("■");
        else if (ch == '0') printf("□");
        else if (ch == '\n') printf("\n");

    fclose(fp);
    return 0;
}

ガムテープ

Re: fscanfでの読み込み

#3

投稿記事 by ガムテープ » 14年前

ありがとうございます!  

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: fscanfでの読み込み

#4

投稿記事 by ISLe » 14年前

なぜfscanfを使わなければならないのか。
fgetcを使ってはいけないのか。
気になります。

閉鎖

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