在C/C 中显示来自TXT文件的单词
displaying words from a txt file in c/c++
我有一个小问题。我有一个仅包含英语单词的文本文件。我只想显示文件中的单词,忽略空格。这是代码:
#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<stdio.h>
#define max 50
void main()
{
clrscr();
char output;
FILE *p;
char a[max];
int i=0;
p=fopen("thisfile.txt","r");
while(1)
{
char ch=fgetc(p);
if(ch==EOF)
{
break;
}
else if(ch==' ')
{
cout<<a;
delete [] a;
i=0;
}
else
{
a[i++]=ch;
}
}
fclose(p);
getch();
}
现在,我在输出中获得了一些意外的字符。您能否提及问题在哪里?
这是一个很多,更简单的解决方案:
#include <string>
#include <fstream>
#include <iostream>
int main()
{
std::ifstream infile("thisfile.txt");
for (std::string word; infile >> word; )
{
std::cout << "Got one word: " << word << std::endl;
}
}
这是您可以通过单词迭代的一种方式:
#include <fstream>
#include <iostream>
#include <ostream>
#include <iterator>
#include <string>
int main()
{
std::ifstream file("test.txt");
std::istream_iterator<std::string> begin(file), end;
for(; begin!= end; ++ begin)
std::cout<< *begin<< 'n';
}
您的某些变量未初始化。(顺便说一句,fgetc
返回 int
,对EOF
进行测试很重要)在标准C中更轻松的解决方案:
#include <stdio.h>
int c;
while ((c = getchar()) != EOF) {
if (c == ' ')
putchar('n');
else
putchar(c);
}
为什么不尝试此操作:
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
int main() {
clrscr();
string s;
ifstream in("file.txt");
while(in >> s) {
cout << s << endl;
}
in.close();
return 0;
}
我喜欢简洁明了:
#include <iostream>
#include <iterator>
#include <fstream>
#include <algorithm>
int main() {
std::copy(std::istream_iterator<std::string>(std::ifstream("test.txt") >> std::ws),
std::istream_iterator<std::string>(),
std::ostream_iterator<std::string>(std::cout));
}
当然,您可能想在单词之间打印一些东西...
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 无法打开.txt文件
- 如何使用CLion在Mac上创建一个新的.txt文件
- 使用fstream对txt文件中的数字进行循环
- Visual Studio在尝试读取resource.txt文件时崩溃
- 如何从txt文件中读取多个不同长度的数组?
- 在一次迭代中从 txt 文件中读取多行
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 写入超过 1GB 的.txt文件时出现奇怪的行为
- 视觉 如何循环访问C++中遵循类似格式的多个.txt文件?
- txt 文件中浮点数的最大和最小值
- 从.txt文件中读取浮点型数字并在公式中使用它们
- C++将文本从.txt文件解析为变量
- 在树结构.txt文件中搜索节点
- 为什么我无法打开/读取从 Python 调用的 C 扩展名中的 txt 文件?
- 在 txt 文件中显示前两个数字的程序
- 如何从具有两列的.txt文件创建并行数组?
- 如何使用c ++读取带有非英文字母的*.txt文件?(国际化)
- 如何像在 C++ 中处理数组一样对 .txt 文件中的字符进行寻址?
- 如何读取 TXT 文件并仅将 int 存储在 C 中