【发布时间】:2020-03-07 13:24:58
【问题描述】:
所以我需要编写一个 C 程序:
要求用户输入名字的字母
打开包含 1200 个名称列表的文件
在文件中搜索以用户输入的字母开头的所有名称
将所有找到的名称写入根据输入的字母命名的新文件(例如 aNames.txt)
这是我目前所拥有的。我可以获取原始文件并将所有名称放入一个数组中,但我一直不知道如何获取用户输入并让它搜索每个名称的第一个字母。我应该改用二维数组吗?对不起,我很新,请帮助!谢谢
#define SIZE 1200
int main()
{
FILE *filePtr;
int i = 0;
char arrChar[SIZE];
char name[20];
char letter;
printf("Enter letter to search names that start with it:");
scanf("%c", letter);
filePtr = fopen("names.txt", "r");
while(fscanf(filePtr, "%s", arrChar) != EOF)
【问题讨论】:
-
稍后我可能会更详细地了解这一点,但我希望如果您想写入一个新文件,您可以在命令行上通过“管道”将其“管道”到一个新文件中来执行此操作而不是在 C 代码中进行。虽然您当然可以通过简单的打印在 C 代码中完成所有操作。例如,一旦您遍历文件中的每个单词,如果当前单词以用户输入的字符开头,只需 printf("%s", the word) + a new line(记住这是伪代码。然后, 运行程序时,以
./myprogram > aNames.txt运行即可。这是否允许?还是都需要这样做 -
所以是的,这一切都需要通过运行程序来完成。我只允许使用 C 而不能使用命令行。
-
为什么提示输入角色?将该值作为命令行参数。 (想象一下,如果 grep 的行为是提示寻找模式!)
-
请发minimal reproducible example,以便我们重现问题并帮助您调试。