呜~我的C程序运行不了,不知道原因,很简单的,帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:18:23
有两个:

{一}
#include<stdio.h>

int main()
{
FILE* fPtr; /*文件位置指针*/
char name[10];
char age[15];
char sex[5];
char ourExperiences[50];

if((fPtr = fopen("MY FRIENDS", "w")) == NULL){
printf("\n\n\tSorry^I can't open this file.\n");
}
else{
printf("Enter name, age, sex, and your experiences"
"in order:");
printf("\"_\"to between, EOF to end input.\n");
scanf("%s_%s_%s_%s", &name, &age, &sex, &ourExperiences);

/*开始输入*/
while(!feof(stdin)){
fprintf(fPtr, "%s%s%s%s", name, age, sex, ourExperiences);
printf("?");
scanf("%s_%s_%s_%s", &name, &age, &sex, &ourExperiences);

(一)

scanf("%s_%s_%s_%s", &name, &age, &sex, &ourExperiences);

1. 不应该以 '_'做为分隔符,scanf()会扫描并转换所有的非空白字符。
2. 字符数组名称本身就是指向首元素的指针,所以没有必要再用&操作符。

以建议改为以下形式:
scanf("%s%s%s%s",name,age,sex,ourExperiences);

以空格作为分隔符进行输入
******************************************
while(!feof(stdin)){
fprintf(fPtr, "%s%s%s%s", name, age, sex, ourExperiences);
printf("?");
scanf("%s_%s_%s_%s", &name, &age, &sex, &ourExperiences);
} /*EOFwhile*/

可以改为如下形式,当输入为0时结束录入

while(1){
fprintf(fPtr, "%s %s %s %s\n",name, age, sex, ourExperiences);
printf("?");
scanf("%s",name);
if (*name=='0')
{
break;
}
scanf("%s",age);
scanf("%s",sex);
scanf("%s",ourExperiences);

}

***************************************
在录入完成之后,