質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

3432閲覧

C言語で一文字ずつファイルの入出力がしたい

dadadan

総合スコア13

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2018/11/13 07:09

前提・実現したいこと

C言語のファイル入出力で、一文字ずつ出力し、一文字ずつ読みだして表示する
という練習プログラムを作成しています。
ソースは完成していて、エラーなどもなく動いているのですが、一文字ずつ表示されているのかがわかりません。
目視でわかるようにする方法などはないでしょうか?
また、調べながら書いたのでソース自体が合っているのかすらわかりません。
初心者ですがよろしくお願いします。

発生している問題・エラーメッセージ

一文字ずつ表示されてるかわからない

該当のソースコード

C言語

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

int main(void)
{
FILE *fp;
int i;

if((fp = fopen("moji.txt","w")) == NULL){ printf("ファイルを開けませんでした\n"); exit(EXIT_FAILURE); } printf("文字を入力してください(改行後、ctrl+Zで終了)\n");

while((i = fgetc(stdin)) != EOF){
fputc(i,fp);
}
fclose(fp);

if((fp = fopen("moji.txt","r")) == NULL){ printf("エラーが発生しました\n"); exit(EXIT_FAILURE); } printf("ファイルから読み込んだ文字\n"); while((i = fgetc(fp)) != EOF){ putchar(i); } fclose(fp); return EXIT_SUCCESS;

}

補足情報(FW/ツールのバージョンなど)

eclipse バージョン4.9.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/11/13 07:11

OSは何でしょうか?
dadadan

2018/11/13 07:12

windows 10です。
guest

回答2

0

ベストアンサー

windowsのapiを用いて

c

1#include <windows.h> 2 3// 100ms待機 4Sleep(100);

などを挟んでいくという方法があります。

cygwin/mingw環境ならば

c

1#include <unistd.h> 2 3// 100ms待機 4usleep(100 * 1000);

も使えるかと思います。


ただし

putcharは内部にバッファを持っている可能性があり
1文字ずつ書き込まれるような動作にはならないと思います。

その場合はfflush(stdout);を挟みましょう。

投稿2018/11/13 07:31

asm

総合スコア15147

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dadadan

2018/11/13 07:41

無事に解決することができました! こんな関数があったんですね、、、 また勉強になりました。 ありがとうございます。
guest

0

コンソールになにも出ないの?
Eclipse使ってるなら、putcharの行にブレークポイント設定して、なんの文字が出力されるのか見てみればどうでしょう

投稿2018/11/13 07:12

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dadadan

2018/11/13 07:24

普通に実行して、 aaa と入力すると、printfで指定した文字と一緒に表示されます。 putcharの行にブレークポイント設定をしてデバッグで実行するとデバッガーコンソールに Undefined command: "aaa". Try "help". とエラーがでました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問