c语言编程出现Segmentation fault怎么办
出现段错误/非法内存访问可能是因为:
你读的时候读的长度和你的输入有关,而实际上存在文件中的用户名密码长度不一定是你输入的长度。这时候(比如少读或多读一个字符),那么你的fgetc让文件指针移动之后就不会停在你想要的地方。发生错误最好的解决办法是调试。无论是简单的加printf语句,或是添加断点进行观察都是不错的选择。
下面是我调好的一个版本,其中有些变量名称进行了修改更方便理解。(另外我假设密码不一定是一个数字,而可能也是一个字符串)
#include 《stdio.h》
#include 《stdlib.h》
#include 《string.h》
int main()
{
char usrName, usrPwd, curName, curPwd;
int n = 0;
FILE* fp = fopen(“UserInfo.txt“, “r“);
if (!fp) {
printf(“UserInfo.txt missing...\n“);
return 0;
}
printf(“User login:\n\nUsername: “);
scanf(“%s“, usrName);
printf(“Password: “);
scanf(“%s“, usrPwd);
printf(“\n“);
while(!feof(fp))
{
fscanf(fp, “%s“, curName);
fscanf(fp, “%s“, curPwd);
if (strcmp(usrName, curName) == 0 && strcmp(usrPwd, curPwd) == 0)
{
printf(“Login Successfully“);
n = 1;
break;
}
}
fclose(fp);
if (n == 0)
{
printf(“Login failure“);
}
return 0;
}
简单测试之后我这边暂时是没什么问题……有问题欢迎讨论。
排版出错的话自己再弄一下吧。
Vistalizator 2.51 win7 sp1 64bit 专业版 语言包 中文改英文 报错
先用internal模式,internal失败再用express。以管理员身份运行时不要使用windows7兼容性模式,直接右键以管理员身份运行就是了,兼容性选项的勾去掉
如果有必要,先用Anytime Upgrade升级到旗舰,然后直接双击语言包安装。
需要key,或者哪里不懂都可以追问,满意请及时采纳!
-语言编程
有什么适合MacBook的C语言编程软件
适合MacBook的C语言编程软件:CLion。
分号:在 C 程序中,分号是语句结束符。也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。
标识符:C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 开始,后跟零个或多个字母、下划线和数字。
编译就会用字符的颜色来提醒我们,这两行内容都被当做了注释的内容,但是假如在vim下编写程序,就不会出现代码颜色不一样的问题,导致程序出错。
是由于“\“的问题,它在c++或者者python语言中,代表的含义都是本行尚未结束,下一行仍和本行是一个整体,所以编译器会认为,两行都是注释,最终导致错误。
C语言是一门面向过程的计算机编程语言,与C++、C#、Java等面向对象编程语言有所不同。
C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。
计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。