gpt4 book ai didi

c - 避免文件中出现空白

转载 作者:行者123 更新时间:2023-11-30 16:26:09 25 4
gpt4 key购买 nike

我正在编写 C 代码,试图避免文件中出现空格。我只想对每次出现的连接空格数一。
例如,如果我有这样的东西:
这只是一个测试
在这些单词之间添加任何空格,例如 '\n'' '\t。我试过这个:

if( (current_c == ' ') || (current_c == '\t') || (current_c == '\n') ){
blank_counter++;
do{
fgetpos(file, &position);
} while( (fgetc(archivo) == ' ') || (fgetc(archivo) == '\t') || (fgetc(archivo) == '\n') );
fsetpos(file, &position);
\***********************************************
*******This is just debugging block*************
printf("The current char: %c\n", current_c);
fputc(c, file);
************************************************\
}

正如您所注意到的,上面的函数只是其中的一部分。一开始我有第一个指令:
while( (current_c = fgetc(file)) != EOF )
并使用 fsetpos()fgetpos() 声明性 fpos_t 位置;
我有一点小烦恼。如果您运行该代码,您可能会出错。当出现'\n'时,指针无法识别它。
有谁可以帮助我吗?

最佳答案

如果您需要计算一个或多个空白、制表符或换行符的序列数,那么代码基本上很简单:

FILE *archivo = …
int c;
int blank_counter = 0;
while ((c = getc(archivo)) != EOF)
{
if (c == ' ' || c == '\t' || c == '\n')
{
blank_counter++;
while ((c = getc(archivo)) != ' ' && c != '\t' && c != '\n')
;
}
}

当遇到空格、制表符或换行符时,递增计数器,然后读取尽可能多的可用空格、制表符或换行符。在这种情况下,内部循环读取其他字符并不重要;这只是标记空白序列的结尾,并且外部循环继续,直到读取下一个空白。

关于c - 避免文件中出现空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53148278/

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