ここから本文です

C言語のエラーについて質問です。

tamanegi2407さん

2010/5/2222:14:07

C言語のエラーについて質問です。

このようなプログラムをコンパイルすると

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

int main() {
int d;

srand(1); //乱数の種をまく
d = rand();
printf("%d", d);
return 0;
}
このようなエラーがでます。

2-1_sample4.c: Infunction `main':
2-1_sample4.c:7:error:stray'\201' in program
2-1_sample4.c:7:error:syntax error at '@' token
このようなエラーが7と8行目で出てきます。
どなたか解決方法を教えてください。
お願いします

閲覧数:
2,287
回答数:
2

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

2010/5/2223:10:32

エラーの出る行の頭の方にシフトJIS全角の空白(コード0x8140)が入っている。
0x81=0201(8進?)、0x40='@'ということかな。

質問した人からのコメント

2010/5/23 10:35:08

笑う 空行が入ってたみたいです。
解決できました。
ありがとうございます。

ベストアンサー以外の回答

1〜1件/1件中

編集あり2010/5/2302:06:36

難しいな \201 は入力がutf-8である可能性を示唆するけど、@ がでてこないよね。
utf8を知らずにsjisだと認識して、かつjisに変換しようとするとでてくると思うけど....

- utf-8 を理解しない
- 日本語としてShift_JISを認識するが、内部はJIS相当に変換して処理する。(つまりフロントエンドとかが)
- // を理解しない

というCコンパイラを使ったと考えるといいのかな。想像する部分が多すぎるけど。
ということで、
- コメントは /* これ */ を使う。
かつ、安全のために
- その処理系が日本語コメントの文字コードになにが使えるか調べる。
わからなかったら jisが一番安全そうか? もしくは、英語でかく。

補足:
あ quickbrwnfoxjumpsoverthelazydog様のが正解だ....
私のは間違いだから惑わされないで。>質問者
知恵袋では行頭の空白が消えるから、行頭にあるだろうということなのですね。感服。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。