電子書籍の厳選無料作品が豊富!

Macでテキストエディットを用いてC言語プログラミングをしました。hello.cを作りました。
#include<stdio.h>

int main(void){
printf(“HelloWorld¥n”);
return 0;
}

この上がソースコードです。そしてターミナルでコンパイルして実行したら以下のようなメッセージが出ました。どこが間違っているのでしょうか?
gcc -o main hello.c
hello.c:4:10: error: non-ASCII characters are not allowed outside of literals
and identifiers
printf(“HelloWorld¥n”);
^
hello.c:4:23: error: non-ASCII characters are not allowed outside of literals
and identifiers
printf(“HelloWorld¥n”);
^

hello.c:4:13: error: use of undeclared identifier 'HelloWorld'
printf(“HelloWorld¥n”);
^
hello.c:4:26: error: non-ASCII characters are not allowed outside of literals
and identifiers
printf(“HelloWorld¥n”);
^
4 errors generated.

A 回答 (5件)

すくなくとも、ここにコピー&ペーストされたソースでは、


" ( アスキーコード 0x22 ) のダブルクォートではなく、
http://unicode.org/cldr/utility/character.jsp?a= …

http://unicode.org/cldr/utility/character.jsp?a= …
になっています。

これらは、フォント等の環境によっては、全て「半角の二重引用符」に見えます。
私はMacユーザーで、実際にターミナルで cat hello.c とやると、半角に見えます。

ですが、C言語で、文字列用として有効なのは、 " ( アスキーコード 0x22 ) だけです。


*** 半角(に見える)かどうかは、関係ありません ***


od -c hello.c
と入力して、ダンプを取ってみてください。
odはバイナリーダンプを表示するコマンドですが、 -c オプションを付けると、文字コードとして認識できるものは、その文字で表示されます。

途中で改行等が挟まれるでしょうが、中身だけに注目します。
正しいプログラムなら
p r i n t f ( " H e l l o W o r l d \ n " ) ;
と、出力されるはずです。
しかし、今はこのように表示されるでしょう。
p r i n t f ( “ ** ** H e l l o W o r l d ¥ ** n ” ** ** ) ;

“ ** **
というのは「 3バイト使って、 “ という文字になる」という意味です。
    • good
    • 0

>#include<stdio.h>


>
>int main(void){
>printf(“HelloWorld¥n”);
>return 0;
>}

先のお二人と同意見ですけど…。

”では通用せず、" なら通るのでは?

  
    • good
    • 1

入力の際に注意を。


似たように見えて、違う文字があります。

プログラム中に使われている

と、Cで文字列を表現する
"
とは違います。 " は Shiftと2 キーです(日本語キーボードの場合)

また、Macの場合、
¥ (円マーク)

\ (バックスラッシュ)
は別の文字として扱うケースが多いです。
改行文字等は、バックスラッシュを使います。
バックスラッシュは、 optionキーを押しながら円マークのキーを押します。(日本語キーボードの場合)
    • good
    • 0
この回答へのお礼

\n抜いても同じ現象です。しっかりと半角にしています

お礼日時:2014/01/07 08:23

#include<stdio.h>



int main(void){
printf(“HelloWorld¥n”);
return 0;
}

文法に問題はないので,おそらくエラーの出ている行に全角の空白があるか,HelloWorldのプロンプトへ出力表示するためのprintfの「"」が全角「”」になっているのではないでしょうか?

おそらく後者だと思います.
    • good
    • 0

どこかに全角文字がはいってるのではないでしょうか?


半角文字だけでなければいけないですよ
わかりにくいとおもうので、スペースとかの場合はですけど
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!