![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
このソースのどこがわるいのかわかりません
エラー時にこのようなエラーメッセージが出ます
In function `writedata':
52: error: syntax error before string constant
65: error: syntax error before string constant
89:2: warning: no newline at end of file
ソースはこれです
#include <stdio.h>
#include <string.h>
#include <time.h>
typedef struct {
int day;
double dist;
char comment[32];
} diary;
void writedata(char datafile[]);
void viewdata(char datafile[]);
char datadir[] = "dat/";
int year,month,day;
int main(int argc,char *argv[]) {
char datafile[11];
struct tm *date;
time_t now;
now = time(NULL);
date = localtime(&now);
year = date->tm_year + 1900;
month = date->tm_mon + 1;
day = date->tm_mday;
sprintf(datafile,"walk%04d%02d",year,month);
if((argc > 1) && (strcmp(argv[1],"-view")==0)) {
viewdata(datafile);
}
else {
writedata(datafile);
}
return 0;
}
void writedata(char datafile[]) {
diary today_data;
FILE *outfp;
char y_n = 'n';
char filename[15];
char input_str[12];
printf("%d/%d/%dの記録をしますか?(y/n) > ",year,month,day);
scanf("%c", &y_n);
while(getchar() != '\n') { }
if(y_n != 'y') {
printf("記録する日付は?(例:%d %d %d) > ",year,month,day);
year = 0; month = 0; day = 0;
gets(input_str);
sscanf(input_str"%d %d %d",&year,&month,&day);
if((year > 9999) || (month > 12) || (month < 1) ||
(day > 31)|| (day < 1)) {
printf("日付が正しくありません\n");
return;
}
sprintf(datafile,"walk%04d%02d",year,month);
}
today_data.day = day;
printf("距離は? >");
scanf("%lf", &today_data.dist);
while(getchar() != '\n') { }
printf"コメントは?(30文字以内) >");
fgets(today_data.comment, 32, stdin);
if((strlen(today_data.comment) == 31) &&
(today_data.comment[30] != '\n')) {
while (getchar() != '\n') { }
}
sprintf(filename, "%s%s",datadir,datafile);
if((outfp = fopen(filename,"a+")) == NULL) {
printf("ファイルオープンエラー\n");
return;
}
fprintf(outfp , "%d %.2lf",
today_data.day,today_data.dist);
if((strlen(today_data.comment) == 31) &&
(today_data.comment[30] != '\n')) {
today_data.comment[30] = '\n';
today_data.comment[31] = '\0';
}
fprintf(outfp,"%s",today_data.comment);
fclose(outfp);
printf("記録しました");
}
void viewdata(char datafile[]) {
}
なぜ、エラーになったか教えてくださいお願いします
No.2ベストアンサー
- 回答日時:
ぱっと見のコードで気になっただけなので全部見てません
コンパイルエラーにはなりませんが
>char datadir[] = "dat/";
char datadir[] = "dat//";
じゃないと動かないと思います(ファイルオープンエラーになると思われます)
ただ / はバックスラッシュのつもりでしょうか?
環境が分かりませんが / がバックスラッシュの代わりになる環境ならいいですが
普通はコードが異なります
No.1
- 回答日時:
エラー箇所と訂正例は以下の通りです。
--------------------------------
52行目:
× sscanf(input_str"%d %d %d",&year,&month,&day);
○ sscanf(input_str", %d %d %d",&year,&month,&day);
65行目:
× printf"コメントは?(30文字以内) >");
○ printf("コメントは?(30文字以内) >");
89行目の最後に改行がない
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Visual Basic(VBA) 今日の日付が過ぎたらその行を削除したい 1 2023/04/01 20:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Schemeのプログラミング うる...
-
CSV読み込み時に条件に合う行(...
-
年令の計算方法
-
ソースの詳細を教えてください。
-
Application.ScreenUpdating = ...
-
python3について。
-
JSONで文字列が長い時
-
formで特定のinputを送信しない...
-
16進の10進変換について
-
FindFirst を複数条件で検索
-
<SELECT>タグの折り返し
-
セレクトボックスのselected属...
-
文字の横にプルダウンを表示さ...
-
メモリをアドレスを直接指定し...
-
VBA他のブックから値のみ貼付す...
-
実行時エラー 3020の対策
-
子windowsからsubmit()後にclos...
-
【至急!!!】python言語で本を見...
-
回数を指定しないで空白行まで...
-
ACCESS テキストボックスを隙...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
先月(YYYYMM)の生成方法
-
日齢計算プログラム
-
大至急お願いします。出力で悩み。
-
2つの日付・時間の差分を求め...
-
サマータイムの判定について
-
CSV読み込み時に条件に合う行(...
-
1桁の日付に0を付ける
-
Perlの日付の比較に関して
-
当日の日付をプルダウンメニュ...
-
ソースの詳細を教えてください。
-
日付の差分の求め方(日、分)
-
前日の日付取得するには?
-
体重が3kg増える/減る の英語...
-
日付範囲をの連番と月末を取得
-
PICで世界時計を作りたいのですが
-
PerlからMysqlに接続してデータ...
-
Schemeのプログラミング うる...
-
perlでcheckboxがうまく整理で...
-
時間の計算について
-
年令の計算方法
おすすめ情報