字符串 C++ 的问题
Posted
技术标签:
【中文标题】字符串 C++ 的问题【英文标题】:Problems with strings C++ 【发布时间】:2013-07-13 05:50:49 【问题描述】:我不知道如何在几段左右的时间内阅读,而不是把每个单词放在结构中,而不是计算有多少个独特的单词。
我知道如何读取数据,只是不从有一行的字符串中传输一个单词。正如我之前在几段中所说的那样
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct words
char unique[21];
int count;
test;
void inputFile (words essay[100]);
int search (int index, int subscript, int integer,words essay[100]);
int main()
words essay[100];
inputFile (&test);
cout << essay[0].unique<<test.count;
return 0;
void inputFile (words essay[100])
char fileName[81];
char copyName[81];
cout << "What is the name of the input file? \n";
cin >> fileName;
ifstream infile;
ofstream outfile;
int count = 0;
char line [81];
int ch;
infile.open(fileName);
outfile.open(copyName);
while ((ch = infile.peek()) != EOF)
// while not end of file
infile.getline (line[81].unique, 81);
cout << "Copying: " << line << endl;
count++;
outfile << essay << endl;
cout << "There were " << count << " lines copied\n";
cout << endl;
// close both files
infile.close ();
outfile.close ();
;
/*int search (int index, int subscript, int integer, struct words essay[100])
string key;
key = test.unique;
int n;
n = test.count;
int i;
i = 0;
while (i < n && essay[i] != key)
i++;
if (i == n)
i = -1;
return i;
;*/
【问题讨论】:
该代码是否编译?乍一看它不应该......仅供参考,计算文本中的单词是一项简单的任务,很多答案都描述了如何做到这一点。 ***.com/questions/16867944/… 你不必偷看。只需写while (infile.getline(…)) …
。顺便说一句line[81].unique
没有意义;你想在那里做什么?无论如何,您应该将line
定义为std::string
并使用std::getline(infile, line)
而不是infile.getline(…)
。
如果您明确谈论 C++ 字符串,为什么包括 cstring?使用std::string
(Header 这是一个部分答案,主要侧重于清理流读取逻辑。我无法清楚地弄清楚您在做什么,无法提供更多帮助。 (例如,你为什么要输出 essay
到 outfile
而没有放入任何东西。)
void inputFile (words essay[100])
std::string fileName, copyName;
cout << "What is the name of the input file?\n";
cin >> fileName;
// I assume you get copyName here…
// Though fileName and copyName really should be parameters
// passed in from `main()`.
ifstream infile(fileName);
ofstream outfile(copyName);
std::string line;
int count = 0;
while (getline(infile, line))
cout << "Copying: " << line << endl;
count++;
outfile << essay << endl; // No idea what you're doing here.
cout << "There were " << count << " lines copied\n";
;
【讨论】:
这只是应该输出“复制”的内容,我可以这样做,我只是不明白如何获取我复制的内容(输入)而不是将每个单独的单词放入结构中并计算唯一的那些。 我知道我需要一个 for 循环我只是不知道如何让它来分隔空白,这样你就可以在结构中拥有每个单独的单词。以上是关于字符串 C++ 的问题的主要内容,如果未能解决你的问题,请参考以下文章