从C中的文件中提取单词
Extracting words from a file in C
任何人都可以帮助我更正以下代码。我 需要提取单词(非白空间字符的序列直至白空间字符或新的线字符)。在这里,代码打印每个提取单词的字母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]=' ';
i=0;
if(ch!=' ' || 'n' || -1)
{
opc[i++]=ch;
}
opc[i]=' ';
i=0;
if(ch!=' ' || 'n' || -1)
{
opd[i++]=ch;
}
opd[i]=' ';
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并(尝试)获取单独的单词,直到达到某个空间或newline为止。
您有调试器吗?设置一个断点并逐步逐步划线。您会发现,循环中至少有一个语句没有任何意义。提示:为什么循环中的i = 0语句?
如果这不仅是在编码过多后的错字,您可能想阅读
-
a时循环起作用。特别是重复哪些命令。
-
如果有效。尤其是条件语句(例如" if"和循环语句)之类的区别。
ps-我显然有偏见,但是如果您正在寻找一个好的教程,请尝试我的C教程http://masters-of-the-void.com-它是为Mac编写的,但是您已经已经为让您的编译器启动和运行,并且您已经对其进行了编译,因此仅在Linux上进行样本就应该在您的技能中。
相关文章:
- 使用正则表达式c++从单词和分隔符之间的字符串中提取所有子字符串
- 提取字符串中的随机单词
- 当字符串中只有一个"GOOD"字符串可用时,从没有空格的字符串中提取第一个单词的最佳和有效方法?
- 如何在C 中不带有弦乐和strtok的情况下拆分字符串(提取单词)
- 从微妙的问题中提取单词
- 提取第二个单词.解析字符串(C )
- 从长时间中提取每个单词的钻头操作
- 从C中的文件中提取单词
- 在单词词典中提取以片段开头/包含/结束的单词
- RegexC++:从字符串中提取子字符串,然后计算每个单词
- 提取两个单词之间的域
- C++编写一个从段落中提取单词的函数
- 从以特定单词开头的目录中提取所有文件
- 无法从单词中提取啃咬
- 这是从连续的单词序列中提取任意范围的位的最有效方法
- 从文件中提取行.txt然后将单词存储到单独的数组中 |C++
- 从未知长度的手动输入中提取单个单词
- c ++ 如何提取单词之间的空格(如果有)
- 提取c++输出中某个单词前面的值
- 从包含单词的文件中提取double