![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.6ベストアンサー
- 回答日時:
基本的にyoppiiさんの回答で合っていると思います。
ただ、一つ付け加えるなら「1文字しか対応されていない例なので、適宜ループする必要がある」ということです。
あえて例を書き加えるならば(fopenとfcloseを今回もはしょります)
int c = fgetc(fp);
while(!feof(fp))
{
if (c == ' ' || c == '\t') { /* 読み込んだ1文字がスペースまたはタブだったら */
…
}
c = fgetc(fp);
}
あと、char型って1バイト数値を扱うもので2バイトを扱うのはshort型です。
かといって漢字を扱うのにshort型は逆に適していません。またint型とlong型は
処理系によって扱うバイト数も異なります。
さらに、fgetc関数の戻り値をchar型にキャストする方法も紹介されていますが
これは推奨しません。1つの回答としては問題ないように思えますが、万一
ファイルアクセスエラーとなった場合にエラーなのか文字コード(特に漢字)なのか
判別できなくなるからです。
#int型を返す理由はこのあたりにあります。
No.5
- 回答日時:
int c = fgetc(fp);
if (c == ' ' || c == '\t') { // 読み込んだ1文字がスペースまたはタブだったら
…
}
単純に,これで OK です。
No.4
- 回答日時:
比較元の文字(' 'や'\t')を文字コード(0x20や0x09)で指定したらどうでしょうか。
(VisualC++6.0の場合、シングルコーテーションで指定した場合は、char型と、逆に16進数で指定した場合は、int型と認識されています。)
もしくは、fgetcの戻り値をchar型へキャストしてはどうでしょうか。
No.2
- 回答日時:
>関数fgetcは返値がint型のようです
そうです アスキーコードが戻り値です
>fgetcのint型返り値をchar文字列と比較するにはどうしたら良いでしょうか。
アスキーコードで判定するか、文字変換後判定すればいいです
タブ=0x09,'\t'
SP =0x20,' '
アスキーコード表
http://hp.vector.co.jp/authors/VA008536/data/asc …
MSDN
http://www.microsoft.com/japan/msdn/library/defa …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- C言語・C++・C# 至急お願いします。C言語で.imgのファイルを読み込んで1バイトづつ出力するプログラムを作りたいので 3 2023/01/16 22:49
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- 大学・短大 大学での論文の文字数に関しての質問です。 大学側で指示した条件は「12,000字以上書くこと」ですが 1 2023/01/11 00:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C#でstringをポインタとして渡す
-
曜日を格納する配列の大きさ
-
文字列操作
-
C++で入力した文字列から数字を...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
プログラムによく出てくるst...
-
c言語のstrncpyについて
-
WSH(VBS)でJSONの文字列を読み...
-
TCL言語で文字列検索方法を教え...
-
【速いブラインドタッチ】手を...
-
VBAにてcolorindexを変数に格納...
-
日付チェック関数について
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
C言語のintとcharの違いってな...
-
擬似コード 長さがmの配列でな...
-
CImage GetBitsメソッドについて
-
配列の要素数に変数を入れたい...
-
ヘッダファイルと構造体
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C++で入力した文字列から数字を...
-
%dなどの違い
-
C#でstringをポインタとして渡す
-
16進数を2文字ずつ配列に格納し...
-
TCL言語で文字列検索方法を教え...
-
プログラムによく出てくるst...
-
WSH(VBS)でJSONの文字列を読み...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
数字の入った配列をファイルへ...
-
構造体→文字列→構造体 をする方法
-
VB6.0でのバイナリデータの扱い...
-
char型配列の最大要素数
-
[C++]WCHARの1文字目しか表示で...
-
アルファベットをカウント、
-
VBA-DLLの引数受け渡しについて
-
c#で他のアプリの文字入力フォ...
-
C言語の勉強しています。すみま...
-
Shift_JIS(16進)を文字に変換す...
-
バイナリファイル中の日本語文...
おすすめ情報