gpt4 book ai didi

c - 通过 C 中的标准输入读取大型列表

转载 作者:行者123 更新时间:2023-12-04 09:38:34 25 4
gpt4 key购买 nike

如果我的程序要通过 stdin 传入大量数字列表,那么最有效的读取方式是什么?

我要传递给程序的输入将采用以下格式:

3,5;6,7;8,9;11,4;; 

我需要处理输入以便我可以使用冒号之间的数字(即我希望能够使用 3 和 5、6 和 7 等等)。 ;; 表示它是行尾。

我在考虑使用缓冲读取器读取整行,然后使用 parseInt。

这是最有效的方法吗?

最佳答案

这是一个可行的解决方案
一种方法是使用 strtok() 并将值存储在数组中。理想情况下,动态分配。

 int main(int argc, char *argv[])
{
int lst_size=100;
int line_size=255;

int lst[lst_size];
int count=0;

char buff[line_size];
char * token=NULL;
fgets (buff, line_size, stdin); //Get input

通过传递 ',' 和 ';' 使用 strtok作为分隔符。

    token=strtok(buff, ";,");
lst[count++]=atoi(token);
while(token=strtok(NULL, ";,")){
lst[count++]=atoi(token);
}

最后你必须考虑双“;;”通过将计数减 1,因为 atoi(token) 将在这种情况下返回 0 并将其存储在第 n 个索引中。你不想要的。

  count--;

}

关于c - 通过 C 中的标准输入读取大型列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29135956/

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