-1

我有一个文本文件,如下所示:

a 1 2 3 4
b 5 6 7 8 
c 9 1 2 3
d 4 5 6 7

我需要 C 代码根据提供的输入从我的文本文件中读取一列。例如,如果我将 1 传递给 C 代码,我需要输出为第一列的一维数组:

1
5
9
4

如果我将 3 传递给代码,那么它会输出第三列:

3
7
2
6

我正在使用 MATLAB 将输入传递给 C 代码coder.ref

4

2 回答 2

1

我不会为你写代码,所以这里有一些提示:

您在这里有几个选择,最简单的一个是:

从文件中读取所有数据,然后仅显示所需的列。

您可以通过使用 temp = fgetc(FILE *stream)浏览文件并执行以下操作来做到这一点,

if(temp == ' ') j++;if(temp == '\n') i++;,

i作为矩阵的行和j列。

最后,您将需要一个函数将所有内容放在temp一起并将您的字符串(字符数组)转换为整数。

于 2013-01-10T14:50:50.640 回答
0

如果您在 Unix/Linux 系统上,您可以使用命令行工具(例如cut)预处理您的文件以提取列。

假设您的矩阵位于名为 data.txt 的文件中。然后您可以执行以下操作:

% cat data.txt
a 1 2 3 4
b 5 6 7 8 
c 9 1 2 3
d 4 5 6 7


% cut -d " " -f 2 < data.txt
1
5
9
4

-d 选项指定文本文件中列之间的分隔符。-f 指定要删除的列。您可以编写一个可以获取列号并cut为您运行的 shell 脚本。

于 2013-01-10T18:17:27.843 回答