-
显然,我从未见过这种写作.........以前
fscanf 实际上与 scanf 的工作方式相同,但它不是 stdout。
scanf,你能像这样连续输入两个 %s,两个字符串.........这是不可能的.........
如果这样做,很可能会越界读取存储的字符串,当然会出现错误......
至于如何做到这一点,你可以使用 fread、fwrite,或者,在 fscanf 的情况下,你可以设置一个边界,读取多少个字符,或者继续读取直到遇到 t 字符。
将第一个作业......等等。
最后,我想给大家一个建议:你至少应该复制一下,很多人可能都想复制一下进行调试。
-
建议不要使用 fscanf,最好在拆分前使用 fget!
-
我们需要知道你的结构定义,这样我们就看不到它了。 scanf 系列最常见的情况是以下参数不是要输出的变量的指针类型,因此子变量将出现运行时错误并被强制关闭。 例如,如果您的 id 类型是 char*,那很好,char 也很好,但这种复杂的结果可能会导致由于运算符优先级差异导致语句中的歧义。
-
你把**? 我不认为有地方可以放这个。
-
既然你是不完整的,你只能推断它。
我不认为打开文件有问题,而是调用void load(plink p)函数时传入的参数有问题,p应该是非法的指针,而且不是null。 因此,当使用 p 时(即 p1),存在非法的地址访问,这会导致程序失败。
另外,您使用的 fscanf() 有问题,p1->next->这个 id 是一个整数,对吧? 如果是这样,前面就是加&,也就是&(p1->next->,其他的都是一样的,只是指针或数组名前面不需要加上&。
房东可以试试。
-
最好发布**。
p1->next=
删除并尝试?
-
或者贴出来,别人可以直接复制帮你调试,你放一个**,让人用手打。
似乎 while 条件应该是 p1!=0
-
6.多种类型的操作,根据最大的类型确定最终的类型。 和 double>float>int>char
所以整体是双重的。
7 !当 x 为 0 时,x 为 true。 其他值被证明是假的。 所以你给出的答案是不正确的。 等价的表达式是。
x==08 1 p=&a[1] 使 s 指向 a[4] 则 s=p+32 s=&a[2] p=&a[0] s-p 是元素数的差值,= 2-0 = 2
-
这个问题太多了,我不能直接给**,所以我只能给一个算法提示(看来你是一个系统学习者,有同学,互相理解,理解)先确定结构类型(我觉得自定义不错,用反值)来识别全局变量,传递参数时不要用其他方式, 使用更多的指针数组,简单!想想模块化程序设计,把问题分成几个部分,试一试,前四个我就不说了,for语句基本没问题,然后充分利用指针地址,前几个就可以了,也就是形式参数和实参数之间的传递,注意位地址, 注意第五,冒泡程序是不是变成了?第八个用指针来确定地址,用反转值来放,我只能说它可以提供帮助。
-
你和什么联系在一起? 这么大的话题?
难度不大,但编写调试比较麻烦。
-
只需 5 分即可请人编造此程序。
-
经过测试,工作正常,希望对您有所帮助。
#include
#include
#define n 30
#define id_len 11
#define nm_len 11
#define tm_len 9
定义 4 年级和 6 年级的成绩记录结构*
struct cet
从文件中读取数据并显示
void cet_read()
while(i--)
fclose(fp);
从键盘输入数据并保存到文件
void cet_write()
for(i=0;ifclose(fp);
int main()
-
输入字符数组时,无需添加 &
这类问题的一般做法应该是定义一个日期数组或链表,将文件中记录的数据读入每个程序开头的日期数组或链表中,然后对数组或链表进行所有操作,最后写回文件。
-
第二个很有意思,但是L语言有什么要求,你不就写一两句话吧。
-
学习 C 语言,您就是 Web 安全团队的一员。
-
前额。 它的学校。 我也很痛苦。
-
我用C语言做的所有测试问题都做得很差,所以我懒得再写一遍。
-
1.读取文件结束 读取文件时出错 2 0377
3.位二进制。
4.5. bcdabcd
6. 10,x
7. ef#
9. 2y - 2*m*y
10.**错。
-
1:调用读取函数从磁盘文件中读取数据时,如果函数的返回值为10,则表示已经读取了10个字符。 如果函数的返回值为 0,则表示 ( ) 如果函数的返回值为 -1,则表示(函数调用失败)。
2:设 x 为整数(16 位),由 x|y 使 x 8 低位 1 和高位 8 位不变,则 y 的八进制数为 (c)。
3:在C语言中,文件访问是以字节为单位的,这种文件称为(流)文件。
4:如果定义:int e=1, f=4, g=2; float m=,n=,k;那么求值表达式 k=(e+f) g+sqrt ((double)n)** 后面的 k 值为 (14)。
5:以下程序的结果是 (abcdabcd)。
char s[20]=”abcd”;
char *ssp=s;
sp++;puts(strcat(sp,”abcd”))
6:以下程序的结果是 (1 2 1 3)。
struct n;
main()
struct n a=;
func(a);
printf(%d,%c,,;
func(struct n b)
7:以下程序段的结果是 (def 0ghi)。
har str=”abc\0def\0ghi”,*p=str;
printf(“%s”,p+5);
8:运行以下程序时,从键盘输入book
book 表示回车,代表空格),则以下程序段的结果是 ( book )。
char a1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);gets(s2);
if(!strcmp(s1,s2)) printf(“*
else printf(“#
printf(“%d”,strlen(strcat(s1,s2)))
9:如果以下定义适用,则表达式 y+=y-=m*=y 后面的 y 值为 (my)。
10:请阅读程序片段:
int m=20,n=025;
else printf(“nnn”)
上述程序片段的输出为 ( )。
-
1 读取到文件末尾错误。
3 字节的文本。
45 bcdabcd
6 10,x7 ef
-
下面是一个简单的输入输出文件操作,可以实现你想要包含的功能
int main(void)
printf("请输入您的数据:");
gets(s);将输入数据保存在缓冲区 fputs(s,fp) 中; 将输入数据保存到文件 close(fp); 关闭文件。
printf("文件中的数据为:");
if((fp=fopen("c:\\","wt+"))==null) 再次打开文件。
fgets(s,1000,fp);将文件的内容放入缓冲区 puts(s) 中; 输出文件中的输入。
close(fp);关闭文件。
return 0;}
-
建议大家先看看基本款吧!