みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

コンパイルできない

c言語をはじめたばかりの初心者です。"typ.c"というソースファイルをメモ帳でつくって、コマンドプロンプト上でコンパイルしようとしたのですが、うまくいきませんでした。typ.cファイルの内容は

*typ.c*/
#include <stdio.h>
#include <stdlib.h> /*for exit()*/

int main(void)
{
FILE *fin, *fout;
char buf[256];
char filename1[80], filename2[80];

printf("入力ファイル名=");
gets(filename1);
printf("出力ファイル名=");
gets(filename2);

fin = fopen(filename1, "r");
if (fin == NULL){
printf("%sをオープンできません\n", filename1);
exit(1);
}
fout = fopen(filename2, "w");
if (fout == NULL){
printf("%sをオープンできません\n", filename2);
exit(1);
}

while (fgets(buf, 256, fin) != NULL){
fputs(buf, fout);
}

fclose(fin);
fclose(fout);
return 0;
}

となっています。 いざコマンドプロンプト上でコンパイルしようとすると 
C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(189) : error C20
27: 認識できない型'PostAttribute'が使れています。
c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 'PreAttribute'の宣言を確認してください。

という注意書きが大量にでてきて最後に

C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(239) : fatal err
or C1003: プログラム内のエラーが100個を超えました。コンパイルは中断されます。                        

となってしまいます。

使っているOSはwindows vista で コンパイラはMicrosoft Visual C++ 2008 Express Edition です。

どうしたらよいのかわかりません。 どうか教えてください。 説明に不足があればまた足しますのでよろしくお願いします。

投稿日時 - 2008-09-29 19:38:34

QNo.4365745

困ってます

質問者が選んだベストアンサー

こんにちは。

こちら BorlandC で正常にコンパイルできました。
#2さんの回答であっているかと思いますのでアドバイスを...
※C言語のビルド環境が整っていることを前提として

初心者の方は大量のエラーが発生すると慌ててしまうと思いますが
ほとんどの場合が構文エラーです。
カッコの付け忘れやセミコロンの付け忘れなどです。

それ以降の文が全てエラーとなって出てしまうだけなので
それを訂正すればエラーは消えます。落ち着いて対処して下さい。
エラーとしては楽なレベルです。

エラーで怖いのはコンパイル、リンクが通り実行できるが
正常に動作しないパターンです。
メモリリークとかは悪質で原因の特定が難しいです。

ご参考までに。

投稿日時 - 2008-09-30 19:03:59

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

> *typ.c*/

もし、typ.c の中に本当にこう書いてあるとすると、コメントが正しく始まっていません。

投稿日時 - 2008-09-29 21:39:41

お礼

すいません。全角か半角の違いでエラーを起こしていたようです。一度最初から書き直したらうまくいきました。後ご指摘いただいた通り、/がありませんでした。お手数かけてすいませんでいした。

投稿日時 - 2008-09-30 19:06:22

ANo.1

VC2005で確認したところ問題なくコンパイルできました.
文法的には間違いはありません.
しかし,それでもエラーが出るのであれば,
部分的にプログラムを消してみてエラーの部分を探してみてください.
例えば,下記のように,

int main(void){
FILE *fin, *fout;
char buf[256];
char filename1[80], filename2[80];

printf("入力ファイル名=");
gets(filename1);

fin = fopen(filename1, "r");
if (fin == NULL){
printf("%sをオープンできません\n", filename1);
exit(1);
}

fclose(fin);

return 0;
}
考えられるミスとしては全角のスペースがどこかに紛れ込んでいたりすると見たことも無いようなエラーが出たりします.

投稿日時 - 2008-09-29 20:50:07

あなたにオススメの質問