• ベストアンサー
  • 困ってます

コンパイルできない

  • 質問No.4365745
  • 閲覧数1787
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 52% (20/38)

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 です。

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

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

  • 回答No.3
  • ベストアンサー
こんにちは。

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

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

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

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

ご参考までに。

その他の回答 (全2件)

  • 回答No.2

ベストアンサー率 31% (1645/5171)

> *typ.c*/

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

お礼率 52% (20/38)

すいません。全角か半角の違いでエラーを起こしていたようです。一度最初から書き直したらうまくいきました。後ご指摘いただいた通り、/がありませんでした。お手数かけてすいませんでいした。
投稿日時:2008/09/30 19:06
  • 回答No.1

ベストアンサー率 25% (1/4)

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;
}
考えられるミスとしては全角のスペースがどこかに紛れ込んでいたりすると見たことも無いようなエラーが出たりします.
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A

ピックアップ

ページ先頭へ