所以我想从文本文件中获取getline,并提取每行中的第一个单词并保存在char数组中" op"。我在处理第一个单词之前的空格时遇到了麻烦。文本中的第一行是#34;真棒酱#34;第二行是"是",第三行是"很酷",第四个是"是的好"。在耶和华之前处理空间方面遇到了麻烦。
infile.open(" vec.txt&#34);
//define line pointer
char* line=new char[100];
char other[100];
char op[100];
int numofLines = 0;
int k = 0;
bool wordStart = false;
//get line
while (infile.getline(other,100))
{
int numofChar = k;
int numofOpChar = 0;
int r = 0;
int p = 0;
while (other[k] == ' ')
{
while (other[k] != ' ')
{
wordStart = true;
}
k++;
cout << k << endl;
}
if (wordStart = true)
{
do
{
op[numofOpChar] = other[numofChar];
numofChar++;
numofOpChar++;
}
while (other[numofChar] != ' ');
if (op[numofChar] != ' ')
{
cout << op << endl;
}
}
}
答案 0 :(得分:0)
如果我正确理解了您的需求,请参阅以下内容。为简单起见,我使用了std::stringstream
而不是文件。
#include <iostream>
#include <sstream>
#include <cstring>
#include <limits>
int main()
{
const size_t N = 100;
const char text[] = "awesome sauce\n" "yes\n" "cool\n" " yeah ok";
char line[N];
char op[N];
size_t pos = 0;
std::istringstream is( text );
while ( is >> op )
{
is.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
std::cout << op << std::endl;
}
return 0;
}
程序输出
awesome
yes
cool
yeah
答案 1 :(得分:0)
你应该用k来开始字符串提取
numofchar = k;
if (wordStart = true)
{
do
{
op[numofOpChar] = other[numofChar];