如何在c中动态更改i / o流中的字符串

时间:2016-08-28 17:01:13

标签: c

我正在研究K& R(练习1-18)中的一个问题,该问题要求删除任何尾随空格或标签。这促使我思考像Whatsapp这样的文本信使。事情就是说我正在写一个单词 Parochial ,然后我刚写完 paro 的那一刻,它显示 parochial 作为选项,我点击取而代之的是整个单词(即使我写的拼写错误,当我选择一个选项时它也会替换。)

我在想的是指针回到单词的开头,或者说当我写作时每个新单词的开头,指针被固定到第一个字母&如果我选择一些选项,它会替换流中的整个单词(不知道我是否正在思考正确的方向)。

我可以使用 getchar()指向下一个字母,但我该怎么做:

1:从指向流的指针的当前位置向后移动? (使用 fseek())?

2:如何将指针固定在I / O流中的位置,以便我可以在新单词的开头修复它。

请告诉我我的方法是正确的,或者需要理解一些不同的概念。提前致谢

1 个答案:

答案 0 :(得分:1)

标准流主要用于前进*,最大限度地减少IO系统调用的数量,并避免同时将大文件保留在内存中的需要。

GUI应用程序可能希望将所有显示输出保留在内存中,当您将所有内容保存在内存中时,来回往返只是递增和递减指针或索引的简单事项。

*(随机搜索并不总是最优的,它们限制您在不可搜索的文件(如管道或套接字)上执行IO)