C语言小白求指导srcstr[STRLINE-1] = '\0';
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言小白求指导srcstr[STRLINE-1] = '\0';相关的知识,希望对你有一定的参考价值。
char filename[] = "novelle.txt";
FILE *fp = fopen(filename, "rb");
if (fp == NULL)
printf("错误:文件打开失败:%s", filename);
//return ;
while((!feof(fp)))//if not reach file end
//read and output
fread(srcstr,sizeof(char),STRLINE-1,fp);
srcstr[STRLINE-1] = '\0';
//delete '\n'
//display on screen
printf("%s\n",srcstr);
//get input
scanf("%s",dststr);
//if user input "exit", quit while-loop and print scores.
if(strcmp(dststr,comstr)==0)
break;
srcstr[STRLINE-1] = '\0';为什么要这样呢,实际上这个程序我看不太懂,各位大神帮忙讲一下吧
1.打开novelle.txt;
2.从文件中读取“STRLINE-1”个字节,放到srcstr中,从看srcstr似乎是STRLINE长的数组或者内存块;
3.显示这STRLINE-1个字符,用的“printf("%s\n",srcstr);”,这行就解释了为什么需要在strstr数组最后一个字节添加字符串结束符"\0",否则,printf会一直输出,直到找到第一个“\0”为止;
4.等待用户输入,如果输入“exit”,就退出,否则继续从文件中读数并显示。 参考技术A char filename[] = "novelle.txt";
FILE *fp = fopen(filename, "rb"); //以‘读二进制’文件方式打开文件“novelle.txt”,文件描述符 fp
if (fp == NULL)
printf("错误:文件打开失败:%s", filename); //当打开错误时,返回null,这是检验文件是否正常打开
//return ;
//若还不明白可以看fopen函数
while((!feof(fp)))//if not reach file end
//read and output
fread(srcstr,sizeof(char),STRLINE-1,fp);
srcstr[STRLINE-1] = '\0';
//delete '\n'
//display on screen
//读打开的文件,直至读到文件末尾,在读的过程中fread碰到\n,存入srcstr缓存中,但是存的时候将\n前存入,手动在应该存\n的位置加\0
printf("%s\n",srcstr);
//get input
scanf("%s",dststr);
//if user input "exit", quit while-loop and print scores.
if(strcmp(dststr,comstr)==0)
break;
//打印输出srcstr的内容到屏幕上,然后从屏幕读入一个字符串,假如是exit的话,就直接跳出循环,不再读文件。 参考技术B srcstr[STRLINE-1] = '\0';
是将字符串数组的最后一个字符元素置为字符串结束标志,防止字符串访问时造成字符串数组访问越界。
以上是关于C语言小白求指导srcstr[STRLINE-1] = '\0';的主要内容,如果未能解决你的问题,请参考以下文章