gpt4 book ai didi

c - fgetc 从点跳到新行

转载 作者:行者123 更新时间:2023-11-30 15:41:44 27 4
gpt4 key购买 nike

我试图让 fgetc 读取文件并从某个指示器跳过直到新行。这似乎是一个简单的问题,但我找不到任何相关文档。

这是我的问题的示例:

read this in ; skip from semicolon on to new line

我对解决方案的最佳猜测是读取整个文件,并为每一行使用 strtok 跳过 ;到该行的末尾。显然,这是极其低效的。有什么想法吗?

*我需要使用 fgetc 或类似 fgetc 的东西来逐字符解析文件

最佳答案

最简单的方法是读入整行,然后如果有 ; 则截断。

char buffer[1024], * p ;

if ( fgets(buffer, sizeof(buffer), fin) )
{
if (( p= strchr( buffer, ';' ))) { *p = '\0' ; } // chop off ; and anything after
for ( p= buffer ; ( * p ) ; ++ p )
{
char c= * p ;
// do what you want with each character c here.
}
}

当您执行读取时,缓冲区最初将包含:

"read this in ; skip from semicolon on to new line\n\0"

在该行中找到 ; 并在其中粘贴 '\0' 后,缓冲区将如下所示:

"read this in \0 skip from semicolon on to new line\n\0"

因此 for 循环从 r 开始,并在第一个 \0 处停止。

关于c - fgetc 从点跳到新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20434541/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com