c语言-C语言程序,编译没错,但执行完之后就提示错误。

问题描述

C语言程序,编译没错,但执行完之后就提示错误。

#include
#include
#include
struct st
{
char name[50];
int age;
}info;
void main(void)
{
struct st s[20];
char FileA[50];
FILE*fp;
if((fp=fopen("e:students.txt","wt"))=NULL)
{
printf("打开过程中有错,请检查n");
exit(1);
}
for(int i=0;i<3;i++)
{
scanf("%s%d",info.name,&info.age);
}

for(i=0;i<3;i++)
    if (fwrite(&s[i],sizeof(struct st),1,fp)==0)
    {
        printf("块写入成功");
        exit(0);
    }
    getch();

}

图片我上传不了,它提示的是1.exe已停止工作。然后e盘下有students这个文件。但是里面没有内容。

解决方案

s 定义了,没有初始化。它里面的内容是随机的,你对它按字符串操作一般来说会越界。限定大小,当然也不会越界,但是谁都不知道它的内容是什么!

解决方案二:

你scanf输入的东西保存在info里面,而且给info赋值了三次,并没有给s数组初始化,所以你写进去的东西都是未定义的乱码,当然不成功。

解决方案三:

。。。
if((fp=fopen("e:students.txt","wt"))=NULL) ????你这是干嘛

if((fp=fopen("e:students.txt","wt"))==NULL)

解决方案四:

FILE*fp ; 他是不是得指向NULL
if((fp=fopen("e:students.txt","wt"))=NULL) 如果没有返回文件流指针, 你说这个指针会指向哪?

解决方案五:

if((fp=fopen("e:students.txt","wt"))=NULL) 双等号好不啦

解决方案六:

文件打开失败,你却误以为打开成功

时间: 2024-08-18 14:20:07

c语言-C语言程序,编译没错,但执行完之后就提示错误。的相关文章

测试-c语言程序编译出错error: syntax error before &amp;amp;quot;typedef&amp;amp;quot;

问题描述 c语言程序编译出错error: syntax error before "typedef" 设计的一个顺序循环队列和测试函数,结果编译的时候就有好多error: syntax error before ""不知道要怎么改,求帮助~ 这是我的代码: 头文件: #include typedef struct SeqCQueue { DataType queue[MaxQueueSize]; int MaxQueueSize; int rear; int fro

线性表-c语言程序编译都没问题,运行就崩溃,求解!!!

问题描述 c语言程序编译都没问题,运行就崩溃,求解!!! #include #include #define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define OVERFLOW -1#define OK 1#define ERROR 0typedef int ElemType;typedef struct{ ElemType *elem;//存储空间基址 int length;//当前长度 int listsize;//当前分配的存储容量}SqL

c语言-求大神解答一下!程序编译通过,总是停止运行。

问题描述 求大神解答一下!程序编译通过,总是停止运行. int* qiuyu(int n,int i) { int sum; static int m=2; sum[i]=n%m; m=2; n-=sum[i]; if(sum[i]==0) /*求n的2次方之和*/ return qiuyu(n,i); if(n==0) return sum; else return qiuyu(n,++i); } int main(void) { int m; int *sum,n=27,i=0; sum=q

c语言-急!!求大神能帮忙注释一个C语言编译器的程序。大概说一下程序的流程和框架。

问题描述 急!!求大神能帮忙注释一个C语言编译器的程序.大概说一下程序的流程和框架. 谢谢!灰常感谢~~~~留邮箱发代码~~~~程序目的是完成词法分析.语法分析.语义分析等功能,并生成某种机器上的目标代码(汇编语言)或中间代码(四元式). 解决方案 不懂-程序目的是完成词法分析.语法分析.语义分析等功能, 解决方案二: 363581806@qq.com 尽量试试,刚刚做完编译原理实验,应该能看懂一点-- 解决方案三: 906254242@qq.com我来.

c语言-C语言写的倒序小程序,麻烦大家看看

问题描述 C语言写的倒序小程序,麻烦大家看看 #include #include void reverse(int p,int *q) { int j=0,i=0,N=8,k=N/2; for(;j<=N-1;j++) //雷德算法 { *(p+j)=(q+i); while(k<=i) { i=i-k; k=k/2; } i=i+k; k=N/2; } } int main() { int a[]={1,2,3,4,5,6,7,8}; int b,*c,i; b=a; c=(int)mall

编程-C语言,这个程序是什么意思呀?

问题描述 C语言,这个程序是什么意思呀? 解决方案 感觉p[head]=p[head]这句可以忽视,自己等于自己啊?说一下我的看法:首先是给数组赋值,除了p[16]每个数的值都等于他的下标加一,这样在循环里是每两个一循环,head记录下标test记录下标的数值,test就是1,2;3,4;5,6;7,8;9,10;11,12;13,14;15,0,然后又重新开始了一个新的循环,这是我的看法,楼主加油! 解决方案二: 你这个程序没有输出的,一直在while中. 解决方案三: 感觉这个程序无用,一直

图片-C语言的递归算法,编译为什么会出现这样的结果

问题描述 C语言的递归算法,编译为什么会出现这样的结果 解决方案 首先你这不是递归算法,递归算法最基本的必须运算过程中直接或者间接的调用函数本身. 你的这个为题应该是 scanf() 函数的用法问题,去掉scanf()函数中除了 %d 以外的字符应该就没有问题了. scanf()函数把从键盘读入的数存入指定的变量中,在你的程序中就是读入的数字放入整型变量n中,你的scanf()函数中除了有%d格式控制符外,还有一堆字符串,肯定是不对的.前面的格式化控制符,确定你要从键盘读入的数据的类型. 解决方

c语言-C语言的递归算法,编译时会出现图中的数值,无论输什么数都是这个求和值

问题描述 C语言的递归算法,编译时会出现图中的数值,无论输什么数都是这个求和值 解决方案 首先这并不叫递归,递归是自己调用自己的意思. 这个程序的错误在于scanf格式说明里面不能有汉字 换成 scanf("%d",&n); 解决方案二: 你的程序首先没有用递归,其次scanf不要/n 解决方案三: 你这是一个循环程序, 另外你在你在要输入的数值前面输入和 %d 符号前面一样的串之后,输入数值再敲回车就可以了.不然你读到的值永远是0.

使用C语言扩展Python程序的简单入门指引_python

一.简介 Python是一门功能强大的高级脚本语言,它的强大不仅表现在其自身的功能上,而且还表现在其良好的可扩展性上,正因如此,Python已经开始受到越来越多人的青睐,并且被屡屡成功地应用于各类大型软件系统的开发过程中. 与其它普通脚本语言有所不同,Python程序员可以借助Python语言提供的API,使用C或者C++来对Python进行功能性扩展,从而即可以利用Python方便灵活的语法和功能,又可以获得与C或者C++几乎相同的执行性能.执行速度慢是几乎所有脚本语言都具有的共性,也是倍受人