【发布时间】:2017-10-12 01:45:45
【问题描述】:
如果这个问题已经得到回答,我很抱歉。如果是,请指导我找到解决方案。
我目前正在尝试浏览一个文本文件,遍历它以找到一个数值,将值通过管道传输到子/父进程中,然后我将更新后的值返回到文本中。尽管很简单,但我正在尝试查找数字并将它们放入数组/字符串中,这样我就可以将其输入管道,然后将其输入文本。我已经为此工作了5天,所以我终于向你们寻求帮助。再次道歉,如果这已经存在。
我目前正在浏览文本并检查每个字符是否为整数。我可以把它变成一个字符串,但它只是一个大长字符串。我不确定如何实现它。
这是我目前所拥有的。
while(!readText.eof())
{
while(getline(readText, item))
{
readText >> item;
for(int i=0; i < item.length(); ++i){
if(isdigit(item[i])) //checking if it is a digit
newitem += item[i]; //puts into string
if(!isdigit(item[i])) // if it's not a digit feed it out (but maybe I
//should put into new variable?
cout << item[i];
else if(isspace(item[i]))//keeps the spaces as cout, but again, maybe
//put it into a variable?
cout << " ";
}
}
}
我的挑战是试图弄清楚如何分离这些值并将它们放回原处。我会随着索引增长,但数字会增长,所以位置不会那么准确。
更新的上下文
感谢大家的帮助。一个示例文件将是
In the b6765lue sky there are 59 clouds. The gra7ss is green 766 and it 837 has 7 a cow in i87t.
我需要通过流程/功能更改数字。所以就像你提到的数字的大小自然会变得更大。测试文件可以是 100 行。
In the b6789lue sky there are 83 clouds. The gra31ss is green 790 and it 861 has 31 a cow in i111t.
值已更改为 5 个进程,增量值为 5。
【问题讨论】:
-
while(!readText.eof())-- Please read why this is considered wrong -
您能否包含一个示例文件的小样本,以及您的预期输出是什么?
-
鉴于您发布的输入行,我仍然不明白最终输出是什么,或者应该从中得出什么数字。你有数字和字母混合,好的,那你应该怎么做?你有没有字母的数字,你有什么用?
-
对不起!我会更新的。
-
非常感谢@PaulMcKenzie 的提示。我真的很感激!
标签: c++