掲示板利用宣言

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

 私は

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

掲示板2

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

No.24134

ファイルで登録関数を作ったのですが・・・
投稿者---erumo(2005/11/14 17:09:55)


作成したはよいのですが、コンパイルを通過しません。
どこがいけないのか教えてください。
お願いします。


//登録関数
#include <conio.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>

//構造体
struct address.data{
 char name[20]; //氏名
 char address[80]; //住所
 char tel[12]; //電話番号
 char memo[80]; //メモ
 char yubin[8]; //郵便番号
};

int kennsaku=0;
int menu=0;
int error=0;
int errorcode=0;
int ans=0;
FILE *fp;

int Add()
{
 puts("メニュー:登録\n");

//データ入力関数を呼び出す。
 DataInput();

//2.ファイルポインタをEOFに移動
 fseek(fp,EOF,SEEK_SET);
 if(feof(fp)){
  puts("ファイルポインタはEOFに移動しました。\n");
 }
 else{
  puts("エラーコード:3\nメッセージ:ファイルポインタの移動に失敗しました。\n重要度:中\n");
 }

//3.データ入力(データwrite関数を呼び出す。)
 printf("氏名入力 →");
 scanf("%s",name);
 printf("住所入力 → ");
 scanf("%s",address);
 printf("電話番号入力 → ");
 scanf("%s",tel);
 printf("メモ入力 → ");
 scanf("%s",memo);
 printf("郵便番号入力 → ");
 scanf("%s",yubin);

 while(1){
  puts("\n登録しますか? 1,Yes 2,Cancel\n");
  printf("番号入力 → ");
  scanf("%d",&ans);
  if(ans==1){
   fprintf(fp,"氏名: %s\n,住所: %s\n,電話番号: %s\n,メモ: %s\n,郵便番号: %s\n",name,address,tel,memo,yubin);
   fclose(fp);
   puts("登録しました。\nファイルクローズしました。\n");
   break;
  }
  if(ans==2){
   puts("登録しません。\n");
   break;
  }
  if(ans!=1 && ans!=2){
   puts("エラーコード:4\nメッセージ:不正な値が入力されました。再入力してください。\n重量度:軽\n");
  }
 }
 return 0;
}




この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイルで登録関数を作ったのですが・・・ 24136 zero 2005/11/14 17:17:21


No.24136

Re:ファイルで登録関数を作ったのですが・・・
投稿者---zero(2005/11/14 17:17:21)


>作成したはよいのですが、コンパイルを通過しません。
>どこがいけないのか教えてください。
>お願いします。

コンパイルが通らないなら、コンパイラによるなんらかのエラーが出ているはずです。それも掲載した方がコンパイルが通らない原因を特定しやすいです。

また開発環境はなんですか?
gccをお使いになっているのなら「-Wall」オプションをつけてコンパイルするとより詳しいエラーチェックをしてくれます。
gccでないにしてもお使いのコンパイラに似たようなオプションがあると思いますので、お調べになるのがよろしいかと、、


この投稿にコメントする

削除パスワード

No.24137

Re:ファイルで登録関数を作ったのですが・・・
投稿者---erumo(2005/11/14 17:25:20)


error C2143: 構文エラー : ';' が '.' の前に必要です。
error C2143: 構文エラー : ';' が '.' の前に必要です。
error C2143: 構文エラー : ';' が '{' の前に必要です。
error C2447: グローバルスコープで中カッコ ({) が見つかりましたが、対応する関
りません。
: error C2065: 'DataInput' : 定義されていない識別子です。
: error C2065: 'name' : 定義されていない識別子です。
: error C2275: 'address' : typedef 識別子に、クラス メンバ アクセス演算子 (->
した。
cpp(9) : 'address' の宣言を確認してください。
: error C2065: 'tel' : 定義されていない識別子です。
: error C2065: 'memo' : 定義されていない識別子です。
: error C2065: 'yubin' : 定義されていない識別子です。
: error C2275: 'address' : typedef 識別子に、クラス メンバ アクセス演算子 (->
した。
cpp(9) : 'address' の宣言を確認してください。

とエラー内容は出てきます。
あと開発環境はよく分かりません。
すいません。



この投稿にコメントする

削除パスワード

No.24138

Re:ファイルで登録関数を作ったのですが・・・
投稿者---BlackWind(2005/11/14 17:37:25)


//構造体
struct address.data{ ← ここがおかしいです。
    ^^^^^^^^^^^^^^
 char name[20]; //氏名
 char address[80]; //住所
 char tel[12]; //電話番号
 char memo[80]; //メモ
 char yubin[8]; //郵便番号
};

構造体については、下記を参照してください。
http://www9.plala.or.jp/sgwr-t/c/sec15.html





この投稿にコメントする

削除パスワード

No.24139

Re:ファイルで登録関数を作ったのですが・・・
投稿者---とろり(2005/11/14 17:39:46)


こんにちは。

ぱっと見で気が付いたとこだけ。

-----
> //構造体
>struct address.data{

struct addressdata{
-----
addressdata構造体の実体がない

struct addressdata ad;
-----
> scanf("%s",name);

scanf("%s", ad.name);
-----
DataInput()が定義されていない。
-----


この投稿にコメントする

削除パスワード

No.24178

Re:ファイルで登録関数を作ったのですが・・・
投稿者---help(2005/11/17 00:36:44)


ありがとうございます。

DataInput()が定義されていない。ということは
この関数の前にDataInput()の関数を作成すればよいのですか?




この投稿にコメントする

削除パスワード

No.24179

Re:余談
投稿者---shu(2005/11/17 01:08:41)


役に立つかどうかわかりませんが、面白い記事があったのでリンク貼っておきます。

ソフトウェア開発をシンプルにする考え方のコツ


この投稿にコメントする

削除パスワード

No.24185

Re:ファイルで登録関数を作ったのですが・・・
投稿者---とろり(2005/11/17 11:34:06)


>DataInput()が定義されていない。ということはこの関数の前にDataInput()の関数を作成すればよいのですか?

はい。Add()関数の前にDataInput()関数を作成すれば宣言なしに使用することができます。


どうもマルチで話が進んでいるようですが、
向こうの掲示板(http://hpcgi3.nifty.com/mmgames/patio/patio.cgi?mode=view&no=101)などから察するに、
プログラムの全体が見えていないように思えます。
(部品ごとに作成されているようですが、main()関数や各関数間のインターフェースなどは考慮されていますか?)

余計なお世話かもしれませんが、ある程度考えてみて(調べたり勉強したりも含む)、それでもできないようなら、
出題者に白旗を上げてみてはどうでしょうか。
仕様を見ると、それなりにボリュームがあるようなので、掲示板上での解決は難しいかもしれません。



この投稿にコメントする

削除パスワード

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