我有一个文件指针,我正在使用fgets()给我一个完整的行以及缓冲区中的新行。 我想替换1个字符并在新行之前添加另一个字符。那可能吗? 例如:在一行内插入文本
buffer is "12345;\n"
output buffer is "12345xy\n"
这是代码:
buff = fgets((char *)newbuff, IO_BufferSize , IO_handle[i_inx]->fp);
nptr = IO_handle[i_inx]->fp;
if(feof(nptr))
{
memcpy((char *)o_rec_buf+(strlen((char *)newbuff)-1),"E",1);
}
else
{
memcpy((char *)o_rec_buf+(strlen((char *)newbuff)-1),"R",1);
}
正如你看到的,我在这里更换新线(例如线如上图所示)。 我想插入文本并保留新行,而不是我在上面做的。
向我们展示一些代码和您面临的问题。你说什么是非常可能的。然而,缺乏适当的背景并不能帮助我们帮助你。 – dirkgently 2009-12-27 13:58:06
为什么需要演员? “newbuff”和“o_rec_buff”的类型是什么使它们成为必要的?除非必要,否则你应该放弃施放,而且为什么他们需要这个问题还很不明显。此外,“if(feof(nptr))”测试是来自Pascal的输入。你应该测试'fgets()'的返回值。还要注意,如果fgets()调用失败,那么缓冲区的内容是不确定的 - 这意味着你不能依赖它包含任何理智的东西。 (它可能会和失败之前的一样,但是你不能依赖它。) – 2009-12-27 16:58:24