c语言-请问这个c程序哪里有错,执行有误

问题描述

请问这个c程序哪里有错,执行有误
 #include <stdio.h>
#define n 2
struct student
{int number;
 char name[10];
 int score;
}stu[n];

void save()
{FILE *fp;
 int i;
 if((fp=fopen("file1.dat","w"))==NULL)
 {printf("error");
  return;
 }
 for(i=0;i<n;i++)
   if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
       printf("error");
 fclose(fp);
}

int main()
{
 int i;
 for(i=0;i<n;i++)
 {printf("enter student%d's information:",i+1);
  scanf("%d%s%d",&stu[i].number,stu[i].name,&stu[i].score);
 }
 save();
 return 0;
}

解决方案

注意,一个是file1.dat产生的路径,这个是相对路径,最好你用绝对路径表示,否则怕找不到

一个是文件的内容是二进制的,数字不能直接在记事本中显示。

还有就是win7以上的系统,要注意写文件的权限。

解决方案二:

没错啊,我运行了。可以产生file1.dat

你说的是什么错误。

解决方案三:

看起来scanf("%d%s%d",&stu[i].number,stu[i].name,&stu[i].score);这里会有点小问题,因为"%d%s%d"这里没有分割,如果输入1sss11sss222这样可能就有问题
还有就是main函数没有参数,有些编译器可能编译会不通过

时间: 2024-09-20 09:10:18

c语言-请问这个c程序哪里有错,执行有误的相关文章

c语言-请问此c程序哪里出错了。。谢谢

问题描述 请问此c程序哪里出错了..谢谢 要求将输入的两个字符串连接起来. #include #include char s1[80],s2[80]; int main() { void f(); printf("say sth:"); gets(s1); printf("say sth. again:"); gets(s2); f(); } void f() { int i; strcat(s1,s2); for(i=0;i<=80;i++) printf(

c语言-下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么?

问题描述 下面两段程序片,其执行效率有区别码?在实际代码中会选用哪一段,为什么? 其实就是在执行两层for循环的循环体中,for循环调换位置是否对效率有影响? 如下: 代码段一: for(row=5;--row>=0;) for(col=100;--col>=0;) sum=sum+a[row][col]; 代码段二: for(col=100;--col>=0;) for(row=5;--row>=0;) sum=sum+a[row][col]; 本人小白,望大神们指教. 解决方案

C语言之多线程机制(程序可以同时被执行而不会相互干扰)

接触过linux的人或多或少知道,linux有多线程的机制,也就是说程序可以同时执行,不受干扰,关于这个在我以前的博文里有过类似模拟的时间片轮转程序,跟这个其实是类似的.其实在window上,线程的头文件也是可以包含进来使用的,我这里用DevC++这个软件来测试,看看运行效果就知道了,接下来我们简单介绍一下线程接口.       那么什么是线程呢?      线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中

c++-C语言,输入星期首字母输出星期名,请问这小程序哪里错了,

问题描述 C语言,输入星期首字母输出星期名,请问这小程序哪里错了, 输入s或t,程序提示输入下一个字母 输入下一个字母后,程序没有显示结果就退出了 #include int main(void) { puts("enter a letter"); char ch; ch = getchar(); getchar(); switch (ch) { case 'm':puts("monday"); break; case 't':puts("enter nex

c语言基础-c语言新手,请问我这个程序有问题吗?

问题描述 c语言新手,请问我这个程序有问题吗? #include int main(void) { char ch; printf("Please enter a character.n"); scanf("%c",&ch); printf("The code for %c is %d.n",ch,ch); return 0; } 为什么我输入字符时,按回车,屏幕并没有出现打印的字符串,光标移到下一行的开头? 解决方案 char ch;

strlen-C语言 请问这两行代码是什么意思

问题描述 C语言 请问这两行代码是什么意思 for(int i = 0; i < strlen(charSet); i++) hash[charSet[i]] = 1; 下面是完整代码 // Created by www.runoob.com on 15/11/9. // Copyright ? 2015年 菜鸟教程. All rights reserved. // #include #include #include // 删除字符串中指定字母函数 char* deleteCharacters

c语言-C语言,请问这两行代码是什么意思

问题描述 C语言,请问这两行代码是什么意思 请问 else printf("^%-4c",ch+64);和 if(i%8 == 0) printf("n");这两句是什么意思 #include int main(void) { char ch; int i; for(i=1; (ch=getchar()) != EOF; i++) { if (ch >= ' ' || ch == 'n' || ch == 't') printf("%-5c"

c语言-C语言自己写的程序有个小错,求改下

问题描述 C语言自己写的程序有个小错,求改下 #includeint main(){ int nlkyt1t2t3;char x1x2x3;t1=0;t2=0;t3=0; printf(""请输入现在队伍的列数:n""); scanf(""%d""&n); printf(""拉面的制作时间:n""); scanf(""%d""&l)

面向对象-请问这段程序的输出是什么 为什么

问题描述 请问这段程序的输出是什么 为什么 public class Test { public static void main(String[] args) { Animal a = new Dog(); a.syaHi(); Animal b = new Bulldog(); b.syaHi(); Dog dog = (Dog)b; dog.syaHi(); check(dog); Bulldog bulldog = (Bulldog)b; check(bulldog); } public