i = 0; fp = fopen("Goods.txt", "r+"); while (fscanf(fp, "%s %s %s %s %s %s %s %s %s %s\n",com[i][0].name,com[i][1].name,com[i][2].name, com[i][3].name,com[i][4].name,com[i][5].name,com[i][6].name,com[i][7].name,com[i][8].name,com[i][9].name) != EOF)//读到文件尾停止 { ++i; } } void LogIn(User& user) {
时间: 2023-10-21 19:05:28 浏览: 36
这段代码中,首先将变量i的值设置为0,然后使用fopen函数打开名为"Goods.txt"的文件,以可读写的方式打开。接下来,使用while循环和fscanf函数从文件中逐行读取数据,并将每行的数据分别存储到com数组中相应位置的name成员中。循环会一直执行,直到fscanf函数返回EOF(文件尾)为止。
另外,这段代码中还包含了一个名为LogIn的函数,但是你没有提供LogIn函数的具体实现。所以无法给出关于LogIn函数的信息。请提供LogIn函数的完整代码,以便我能够给出更准确的解答。
相关问题
fp=fopen("%s.txt",a,"w");
这段代码有一个错误,应该是:
```
fp = fopen("%s.txt", a);
if(fp == NULL) {
printf("Failed to open file.");
return 1;
}
```
这里的`fopen`函数是用来打开一个文件并返回文件指针的,它需要传入两个参数:文件名和打开方式。文件名应该是一个字符串,而打开方式则是一个字符串缩写,代表打开文件的方式,例如:
- "r":只读方式打开文件。
- "w":以只写方式打开文件。如果文件不存在,则创建一个新文件。如果文件已存在,则清空文件内容。
- "a":以追加方式打开文件。如果文件不存在,则创建一个新文件。
- "r+":以读写方式打开文件。文件必须存在。
- "w+":以读写方式打开文件。如果文件不存在,则创建一个新文件。如果文件已存在,则清空文件内容。
- "a+":以读写方式打开文件。如果文件不存在,则创建一个新文件。
在你的代码中,第一个参数"%s.txt"应该是一个带有格式化字符串的字符串,而第二个参数"a"则是打开方式。但是你少了一个变量作为文件名的输入,应该是这样:
```
char filename[100];
scanf("%s", filename);
fp = fopen("%s.txt", "w", filename);
if(fp == NULL) {
printf("Failed to open file.");
return 1;
}
```
这样就可以让用户在程序运行时输入文件名了。
检查int read(struct person p[]) { FILE *fp; int count=0; fp=fopen("person.txt",'r'); if(fp==NULL){ printf("Failed to open file.\n"); return 0; } while(fscanf(fp,"%s%s",p[count].ID,p[count].name==2){ count++; } fclose(fp); return count; }
在你的代码中,有一些问题:
1. `fopen` 函数的第二个参数应该是一个字符串,而你传递的是一个字符常量,应该使用双引号,而不是单引号。
2. `fscanf` 函数的第二个参数有误,你的意图是使用等于号将两个字符串的读取结果赋值给结构体中的两个成员变量,但是这是错误的语法。你应该使用逗号将多个参数分隔开,例如 `fscanf(fp, "%s %s", p[count].ID, p[count].name)`。
下面是修改后的代码:
```
int read(struct person p[]) {
FILE *fp;
int count = 0;
fp = fopen("person.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 0;
}
while (fscanf(fp, "%s %s", p[count].ID, p[count].name) == 2) {
count++;
}
fclose(fp);
return count;
}
```
另外,你可能需要检查 `person.txt` 文件是否存在,并且文件中每行的格式是否正确,以免导致程序出现意外错误。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)