ここから本文です

コンパイルが通らない!!!!!!!!!!!!!!!!!!!

asu********さん

2011/8/414:55:06

コンパイルが通らない!!!!!!!!!!!!!!!!!!!

以下のコードをコンパイルし、実行しました。
#include <stdio.h>
#include <stdlib.h>

main(){

FILE *file;
char* code = "#include<stdio.h>\nmain(){\n printf(\"hello\");\nreturn 0;\n}\n\n\n ";

file = fopen("CODE.c","wb+");

fprintf(file,"&s",code);

fclose(file);

system("cc CODE.c");
system("./a");

return 0;
}

を実行すると、このプログラムでつくったプログラムのコンパイルに失敗します。
CODE.c:1: error: parse error before '&' token
CODE.c:1:3: warning: no newline at end of line

なにがいけませんか????????????????????????????????????????????????????????????????????????
サンプルコードください!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

閲覧数:
313
回答数:
3
お礼:
500枚

違反報告

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

hir********さん

編集あり2011/8/507:09:57

>なにがいけませんか????????????ーーー

まず、
1.プログラム中「return 0;」をシステム返す main()関数であるのに、ないところ。
2.ただの文字列に 「fopen(○○, "wb+"); 」の意味不明なモードになっているところ。
3.「fprintf(); 」の文字列出力に、"&s" を用いているところ。
4.ccコンパイルされたコマンドが「 ./a」であるところ。
5.「char *code」中のソースコードに、上記1の同じ誤りがあるところ。
が間違っています。
また、
6.「system()」関数が続けられていますが、続くということはシーケンシャル実行のことですから、Bash等のシーケンシャル区切り文字「 ; 」を付け加えて一つにしました。
7.CODE.c のソースが見づらいので、code にタブブレ(\t)を追加しました。
8.実行結果が「hello」じゃ物足りないので、勝手に code 内容を「hello world!」に換えました。




/* ご希望のサンプルコード */
#include <stdio.h>
#include <stdlib.h> //system();

int main(void){

FILE *file;
char* code = "#include<stdio.h>\nint main(void){\n\tprintf(\"hello world!\\n\");\n\treturn 0;\n}\n\n\n";

file = fopen("CODE.c","w");

fprintf(file,"%s",code);

fclose(file);

system("cc CODE.c; ./a.out"); //system("gcc CODE.c; ./a.out");

return 0;
}

この回答は投票によってベストアンサーに選ばれました!

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

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

xia********さん

2011/8/415:06:38

fprintf(file,"&s",code);これじゃファイルに"&s"と書きます。
fprintf(file,"%s",code);

max********さん

2011/8/415:01:44

とりあえずmain(){
ではなくint main(void){に変更

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

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

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

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

閉じる

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

不適切な投稿でないことを報告しました。

閉じる