gpt4 book ai didi

c++ - 从C语言文件中提取单词

转载 作者:行者123 更新时间:2023-11-30 21:21:40 26 4
gpt4 key购买 nike

谁能帮我纠正以下代码。我 需要提取单词(非空白字符序列,直到空白字符或换行符)。这里的代码将提取的单词的每个字母打印 3 次。

#include<stdio.h>
#include<string.h>
main()
{
FILE *fp1,*fp2,*fp3;
char ch,str[10],lab[10],opc[10],opd[10];
int i;
fp1=fopen("ma.dat","r");

while((ch = fgetc(fp1)) != EOF)
{
i=0;
if(ch!=' ' || '\n' || -1)
{
lab[i++]=ch;
}
lab[i]='\0';
i=0;
if(ch!=' ' || '\n' || -1)
{
opc[i++]=ch;
}
opc[i]='\0';
i=0;
if(ch!=' ' || '\n' || -1)
{
opd[i++]=ch;
}
opd[i]='\0';


printf("%s %s %s ",lab,opc,opd);

}
fcloseall();
}

这是我的输入:

copy start 1000
lda alpha
lda five
sta six
six word 4
alpha rword 5
five byte c'eof'
end

输出是:

c c c o o o p p p y y y       s s s t t t a a a r r r t t t       1 1 1 0 0 0 0 0 0 0 0 0 


l l l d d d a a a a a a l l l p p p h h h a a a


l l l d d d a a a f f f i i i v v v e e e


s s s t t t a a a s s s i i i x x x


s s s i i i x x x w w w o o o r r r d d d 4 4 4


a a a l l l p p p h h h a a a r r r w w w o o o r r r d d d 5 5 5


f f f i i i v v v e e e b b b y y y t t t e e e c c c ' ' ' e e e o o o f f f ' ' '


e e e n n n d d d

在这里,我使用了扫描直到达到 eof 的逻辑,并(尝试)获取单独的单词,直到达到一些空格或换行符。

最佳答案

你有调试器吗?设置断点并逐行单步执行程序。您会发现循环中至少有一条语句毫无意义。提示:为什么循环中有 i=0 语句?

如果这不仅仅是经过太多天的编码后出现的拼写错误,您可能需要了解如何做到这一点

  1. while 循环有效。特别是哪些命令会重复。

  2. 如果有效的话。特别是“if”等条件语句和“while”等循环语句之间的区别。

PS - 我显然有偏见,但如果您正在寻找好的 C 教程,请尝试我的 C 教程 http://masters-of-the-void.com - 它是为 Mac 编写的,但您已经启动并运行了编译器,并且已经用它编译了自己的程序,因此在 Linux 上执行示例应该完全符合您的技能。

关于c++ - 从C语言文件中提取单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21348437/

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