c - 从 C 语言文件中读取、处理和输出数字

标签 c file input

在我执行编写一些代码的任务之前,我希望有人能够确认以下操作是可能的(或者至少相当简单)。

我想要读取一个包含 9 列(用一个空格分隔)和许多行的数字的文件。第二列按数字顺序排列,从大到小。我想丢弃第二列中包含低于指定数字的所有行,然后生成一个新文件并仅输出符合此规则的顶部行。

此外,我想添加第 10 列,它是其他 2 列之间的计算结果。

这是使用数组完成的吗?

提前非常感谢。

最佳答案

这在 awk 中是微不足道的。假设 $N 是一个 shell 变量,其中包含您想要的第二列的最小值,并且您希望使第 10 列成为第 3 列和第 5 列的总和:

awk '$2 > '$N'{ $10 = $3 + $5 }1' input-file

这将输出所有行。将输出通过管道传输到 head 以减少输出行数,或者在 awk 脚本中添加计数器。如果您编写 C 代码来执行此操作,那么您就是在浪费时间,除非这是帮助学习 C 的练习。

另一方面,它在 C 中非常简单。为简单起见,假设您只有 2 列:

int c[2];
do { 
  rc = scanf( "%d %d", c, c + 1 );
  if( c[1] > N && rc == 2 )
    printf( "%d %d %d", c[0], c[1], c[0] + c[1] );
} while( rc > 0 );

关于c - 从 C 语言文件中读取、处理和输出数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12163048/

相关文章:

input - 将数字转换为字符 20

c - 没有连续 2 个 a 和 b 的正则表达式

c - 在不同的 C 文件中使用函数

c - 字符串和文件

html - Firefox 缓存隐藏的输入

java - 如何从 Java 控制台读取单个字符(当用户键入时)?

c++ - 编写一个函数,生成将 n 写为素数之和的所有可能性

c - fork() 如何处理像 stdout 这样的缓冲流?

file - 如何使用批处理文件随机重新排列文本文件中的行

java - 防止和检测打开文件的删除