C++ fgets()的分隔符是什么?
当我对以下文件执行fgets()函数时: code.txtC++ fgets()的分隔符是什么?,c++,fgets,C++,Fgets,当我对以下文件执行fgets()函数时: code.txt this is a test foobar all your base 它还复制“\n”。这是设计的: fgets()函数应将数据流中的字节读取到s指向的数组中,直到读取n-1个字节,或读取a并传输到s,或遇到文件结束条件。(重点是我的) 如果您不希望获得\n,请使用fscanf(“%100s”,str)(将实际大小而不是100) 在C++中,使用 STD::String 和 >以更灵活的方式读取文件的行。在发布这个代码之前,您是否阅
this is a test
foobar
all your base
它还复制“\n”。这是设计的:
fgets()函数应将数据流中的字节读取到s指向的数组中,直到读取n-1个字节,或读取a并传输到s,或遇到文件结束条件。(重点是我的)
如果您不希望获得\n
,请使用fscanf(“%100s”,str)
(将实际大小而不是100)
在C++中,使用<代码> STD::String 和
man fgets
。如果不是,谷歌manfgets
取而代之。嘿,但为什么要投反对票呢。我认为这不是一个错误的问题。@pranitkothari提问者显然没有做出任何努力(除了发帖所需的努力)的问题往往会被否决。在这种情况下,fgets
的文档非常容易理解,任何符合“函数X如何工作”模式的问题都应该在阅读函数X的文档之前进行。@pranitkothari“我认为这不是一个错误的问题。”但也不是一个很好的问题。假设要读取的最大字符数是1000。现在,如果我们在code.txt上执行fgets,那么它将只读取第一行,而不是小于1000字节的整个文件。@harmeetishinghvirdifgets
读取该行,而不是整个文件。如果要读取整个文件,请使用@harmeethinghvirdi。如果不希望在缓冲区中看到“”\n“
s,请将它们全部替换为希望在缓冲区中看到的字符。