C 读取文本文件的内容并将其显示为字符串时出现问题
我有一个名为MySQL.txt的文本文件,包含以下内容:C 读取文本文件的内容并将其显示为字符串时出现问题,c,C,我有一个名为MySQL.txt的文本文件,包含以下内容: MySQL_IP:172.19.1.173 MySQL_USER:kok MySQL_PASS:kok MySQL_DATABASE:kok 我正在尝试使用以下代码读取文件的内容 #include<stdio.h> main() { FILE *fp; char str[50000]; fp = fopen("MySQL.txt","r"); fgets(str,sizeof(str),fp); printf("%s\n",
MySQL_IP:172.19.1.173
MySQL_USER:kok
MySQL_PASS:kok
MySQL_DATABASE:kok
我正在尝试使用以下代码读取文件的内容
#include<stdio.h>
main()
{
FILE *fp;
char str[50000];
fp = fopen("MySQL.txt","r");
fgets(str,sizeof(str),fp);
printf("%s\n",str);
}
这只是第一行…我无法理解原因
fgets
读取一行,即:直到文本或文件末尾的下一个\n
(换行符)
要读取整个文件,您需要重复该顺序,直到
feof
返回true。有一些文档,您可以使用这些文档,并在您最喜欢的搜索引擎上轻松查找,这些文档将告诉您答案。例如:
函数的作用是将数据流中的字节读入数组
由s指向,直到读取n-1个字节,或读取并
已传输到,或遇到文件结束条件。这个
然后字符串以空字节终止
如果需要一次读取整个文件,请使用而不是fgets()
。与fgets()
不同,fread()
不会在换行符出现时停止读取
如果要逐行处理文件,请反复调用
fgets()
,直到返回非零值(表示EOF)或非零值(表示错误条件)。因此,我建议您使用fread()最好检查
fgets()返回的值
;如果没有更多内容可读取,则返回值EOF
。这适用于所有标准输入函数:检查您正在使用的函数的文档,查看它返回的内容以指示输入的结束。在fgets()
告诉您完成后,您可以使用feof()
或ferror()
告诉您原因。更准确地说,fgets()
读取一行(并将其存储在字符串中)。(或者,如果没有足够的空间来阅读全部内容,它会阅读部分内容。)
MySQL_IP:172.19.1.173