2

假设我有两个文本文件in.txtout.txt.

in.txt

abc      one    2    3    4
         two    3    4    two    twenty
         three  3    20   8
adbc     two    4    28   3      thirty

如何逐行阅读并在需要时进行操作?因此,在任何一行上,我都可以检查第一列中是否有一些文本(本例中为“abc”和“adbc”),第二列、第三列等中的内容是什么,直到该行结束?然后,基于这些操作写入out.txt?

例如,如果任何一行有第 6 列(如果它有第 6 列)并且显示“20”,则打印为out.txt“Hello”。

或者

如果第二列是“三”,则添加以下三个数字...

4

2 回答 2

0

我认为 strtok 仍然可以完成工作。只需根据以空格开头的行遵循两条不同的路径。

伪代码:

while (line = readline()) {
    if (line[0] == ' ') { // you can check for multiple spaces if necessary.
        // If line begins with empty first column
        tokenize_handle_normal(line);
    } else {
        // If line begins with string in the first column
        tokenize_handle_special(line); // Call tokenize_handle_normal(line) after parsing the first column
    }
}
于 2013-01-22T09:36:18.467 回答
0

我不知道最好的方法,但这是一种方法:

读入文件并使用 strtok 将其解析为分隔符。(然后你可以再次使用 strtok 来读取它被空格分割的内容)

http://www.cplusplus.com/reference/cstring/strtok/

于 2013-01-22T03:45:23.787 回答