A. c语言为何没识别文件中字符串末尾的\0,直接赋了随机数
有两个问题要注意:一是s数组还没有赋值,for语句却用s[i]!='\0'来作结束控制,显然不妥。二是文件中怎么会有'\0'?'\0'是不可显示字符,向文件写入字符串时不写入'\0',而是在字符串后加一个'
'或'\n'来区分的。而从文件读字符串时,最后的'\0'是读取函数加上去的。所以不可能从文件中读到'\0'。
B. C语言文本结束标识问题
在C语言中,或更精确地说成C标准函式库中表示文件结束符(end
of
file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。
C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被用来判断调用一个函数是否成功。
例如:
#include
<stdio.h>
int
main()
{
int
n;
int
array[25];
while
(scanf("%d",&n),n!=EOF)
{
for
(int
i=0;
i<n;
i++)
scanf("%d",array+i);
for
(i=0;
i<n;
i++)
printf
("%d
",array[i]);
}
return
0;
}
C. C语言删除文件末尾字符的问题。
记事本读取字符串的时候 最后是\r\n结尾 所以fseek 指向的是/r 这个字符 backspace之后
就只有原来的/n了 并且没有删除原来的最后我们需要删除的那个字符
win下记事本 只有\r\n才能正确的换行 字符串只写\n就会出现那个黑点
D. C语言如何判断文本文档的结束
C语言判断文本文档的结束的源代码如下:
#include <iostream>
#include <fstream>
using namespace std;
#define FILENAME "stat.dat"
int main()
{
fstream _file;
_file.open(FILENAME,ios::in);
if(!_file)
{
cout<<FILENAME<<"没有被创建";
}
else
{
cout<<FILENAME<<"已经结束";
}
return 0;
}
(4)c语言文件末尾是字符吗扩展阅读
C语言向文件写入内容并读取显示的源代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define FILE_PATH "D:/demo.txt" // 文件路径
int main(){
char name[20]; // 姓名
int age; // 年龄
int studNo; // 学号
float score; // 平均分
FILE *fp; // 文件指针
// 判断文件是否能够正确创建/打开
if( (fp=fopen(FILE_PATH,"wt+")) == NULL ){
perror(FILE_PATH);
exit(1);
}
E. C语言中说字符串结尾应该是字符'\n',但是看我在下面的代码中结尾是字符'g',不是也可以吗
“C语言中说字符串结尾应该是字符'
',” 这句话是不对的,字符串的默认结尾是‘ ’,例如:
chara[]=“abcd”,在内存中是这么存储的:
系统会默认的将最后一位加上一个'