#include <stdio.h>
#include <string.h>
struct Book
{
char Name[50];
char Phone[50];
char Email[50];
};
int main()
{
struct Book b[100];
int n = 0,i;
FILE *in;
FILE *out;
char str[50];
char op;
while(1){
puts("i 輸入");
puts("l 列印");
puts("s 存檔");
puts("o 讀檔");
//puts("c 清除");
puts("q 離開");
printf("> ");
scanf(" %c", &op);
switch(op){
case 'i':
puts("輸入......");
puts("姓名:");
scanf("%s",b[n].Name);
puts("電話:");
scanf("%s",b[n].Phone);
puts("Email:");
scanf("%s",b[n].Email);
n++;
printf("插入完成!\n");
break;
case 'l':
puts("列印......");
for(i=0;i<n;i++){
printf("No.%d:\n", i+1);
printf("Name: %s\n",b[i].Name);
printf("Phone: %s\n",b[i].Phone);
printf("Email: %s\n\n",b[i].Email);
}
break;
case 's':
puts("請輸入(.txt)");
scanf("%s",&str);
out = fopen(str,"w");
for(i=0;i<n;i++){
fprintf(out, "%d\n",i+1);
fprintf(out, "%s\t",&b[i].Name);
fprintf(out, "%s\t",&b[i].Phone);
fprintf(out, "%s\n\n",&b[i].Email);
}
fclose(out);
break;
case 'o':
do{
n=0;
puts("請輸入(.txt)");
scanf("%s",&str);
in = fopen(str,"r");
fscanf(in, "%d\n",&n);
}while(in==NULL);
for(i=0;i<n;i++)
fscanf(in,"%s %s %s\n",&b[i].Name,b[i].Phone,b[i].Email);
fclose(in);
for(i=0;i<n;i++){
printf("No.%d:\n", i+1);
printf("Name: %s\n",b[i].Name);
printf("Phone: %s\n",b[i].Phone);
printf("Email: %s\n\n",b[i].Email);
}
break;
//case 'c':
//
// break;
case 'q':
return 0;
break;
}
system("pause");
system("cls");
}
return 0;
}
想請問各位先進,最近目前在學C/C++
目前卡關在"c 清除"和"o 讀檔",清檔部分目前不太知道怎麼下手外,而讀檔則是卡在都只能讀到No.1的資料
儘管.txt檔有其它資料依然只能讀到No.1的字串部分。
希望有人能指點迷津...謝謝
這邊回答weiclin:是
但問問題跟作業的相關性是!?
抱歉,剛看iT這邊顯示我是"新手階段"無法做回應