掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23606

エラーの数が多すぎる
投稿者---あきき(2005/10/14 21:52:13)


単なるファイルの存在プログラムから、stdinしたファイル名の存在プログラムへ変更しただけなのですが、なぜこんなエラーが出たのか分かりません。その理由を知りたくて。

   変更箇所
1 fgets()関数にてファイル名を取得
2 ファイル名は、char filename[51]
3 ファイル長を求める変数に size_t len;
4 ファイル長をstrlen()関数を使用
5 fgets()関数でファイル名を取得しているため、filename[len-1]
に'\0'を代入し改行キーを削除
 
(18) : error C2143: 構文エラー : '{' が ':' の前にありません。
(18) : error C2059: 構文エラー : ':'
(17) : error C2143: 構文エラー : '{' が ':' の前にありません。
(17) : error C2059: 構文エラー : ':'
などのエラーが100 個を超えました。コンパイルは中断されます。

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

int main(void)
{
    FILE *fp;
    char filename[51];
    size_t len;

    printf("         ファイル名を入力してください−>  ");//
    fgets( filename, 50, stdin);
    len = strlen(filename);
    filename[len - 1] = '\0';//

    if ((fp = fopen(filename, "r")) == NULL) {
        fprintf ( stderr, "Can't Open C Source File!\n" );
        exit (2);
    }
    printf("%s ファイルは存在します\n",filename);
     
    fclose(fp);

    return 0;
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:エラーの数が多すぎる 23608 ぽへぇ 2005/10/14 22:07:44
<子記事> Re:エラーの数が多すぎる 23609 zero 2005/10/14 22:08:15


No.23608

Re:エラーの数が多すぎる
投稿者---ぽへぇ(2005/10/14 22:07:44)


C++ではなく、Cとしてコンパイルしているとしたら、
おそらく

>#include <string>

↑何か足りないと思いません?



この投稿にコメントする

削除パスワード

No.23609

Re:エラーの数が多すぎる
投稿者---zero(2005/10/14 22:08:15)


>#include <string>

".h" が抜けてます
追加したらコンパイル通りました。


この投稿にコメントする

削除パスワード

No.23610

Re:エラーの数が多すぎる(解決)
投稿者---あきき(2005/10/14 22:49:54)


>>#include <string>
>
>".h" が抜けてます
>追加したらコンパイル通りました。

".h"を追加したらコンパイルは通りました。
ぽへぇさん、zeroさんありがとうございます。
"<string.h>"のミスタッチとは情けない。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧