繁体   English   中英

为什么我的删除字符串尝试失败

Why does my delete string attempt fail

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我一直在尝试制作此示例的自己的版本:

从文件中删除特定行

但是我无法让我正常工作。 我对该程序的当前目标是删除该字符串及其信息(该字符串是第一个字符串下方的字符串),然后执行此操作。 但是,它也为第一行增加了一个额外的空间,使其看起来像这样:

(First Line)


(Second Line) This should be the first line.

这是代码:

infile = ifstream;
outfile = ofstream;
cout<< "What string would you like to delete";
cin>>delstr;
infile.clear();
infile.seekg(0, ios::beg);

ofstream tempfile;
tempfile.open("temp.txt",std::ios::app);

while(delreset == true){

    if(delstr == fLine){
        getline(infile, fLine);

        cout<<"String deleted.\n";
        delreset = false;

        while(fLine != nothing){
            getline(infile, fLine);
            tempfile<<fLine<<"\n";
        }

        tempfile.close();
        infile.close();
        outfile.close();
        remove("example.txt");
        rename("temp.txt","example.txt");

    }else{

        tempfile<<fLine<<endl;
        getline(infile, fLine);

    }
    outfile.flush();
    delreset = true;
}

我删除了使其成为实际程序的精简版本的功能,希望我没有进行任何编辑以免变得毫无意义。

2 个回复

一个简单的版本:

...  // prepare everything as before
while(getline(infile, fLine)) {
    if(delstr == fLine) {   // if line found do nothing
        cout<<"String deleted.\n";
        getline(infile, fLine);  // EDIT: and read and ignore the following line 
    }
    else 
        tempfile<<fLine<<"\n";  // else copy it 
}
...  // here infile was read and tempfile contains the filtered output 

使用这种方法,您甚至可以直接写入输出文件。

顺便说一下, cin>>delstr; 只需要一个字。 它在第一个空格处停止,并忽略结尾的空格。 您可以使用getline(cin, delstr); 代替。

尝试类似这样的方法:

cout << "What string would you like to delete";
getline(cin, delstr);
bool deleted = false;

infile.clear();
infile.seekg(0, ios::beg);

ofstream tempfile;
tempfile.open("temp.txt", std::ios::app);

while (getline(infile, fLine))
{
    if ((!deleted) && (fLine == delstr))
    {
        getline(infile, fLine);
        cout << "String deleted." << endl;
        deleted = true;
    }
    else
        tempfile << fLine << endl;
}

tempfile.close();
infile.close();
outfile.close();

if (deleted)
{
    remove("example.txt");
    rename("temp.txt", "example.txt");
}
else
    remove("temp.txt");
1 尝试从C中的字符串中删除子字符串,但仍失败

我知道这个问题已经被问过很多次了,但是我根本无法理解我做错了什么。 每当我取得一些进展时,我都会收到一个新错误。 我使用的代码非常基础,因为我是新手,我们的教授要求使用scanf并获取。 到目前为止,这是我的代码: 我得到的错误是remove函数的类型冲突。 修复我的代码的任何帮 ...

2 尝试删除字符串字符

我试图通过用空引号将它们替换来删除字符串中的字符。 它给我以下错误消息: 当我用字符替换空字符串时遇到相同的错误,我以为这是替换数组元素的过程,所以我不确定如何继续。 这是我的代码: ...

3 尝试从字符串中删除字符

我正在尝试从随机生成的20个字母的单词中删除元音。 我必须为该分配使用子字符串,但是从概念上讲它有问题。 使用此代码,word的值永远不会改变,并保持其原始值。 当我为字符串的后半部分执行i + 2时,它会跳两个字符,并且在紧接着有两个元音时会弄乱。 如果必须使用子字符串,该如何改进才能 ...

2016-11-15 08:23:21 8 100   java
4 尝试拆分字符串失败

我在尝试将一个字符串拆分为2部分时编写了这段代码,稍后将其保存到数据库中。 目前,我已经成功地将3个单词字符串(如“单词单词编号”)分为3个字段,但是当我尝试将只有1个单词和数字(如“单词编号”)的字符串拆分为2个字段时,我收到了我无法理解的错误消息。 错误消息是: 我试图从e ...

2013-06-18 13:23:36 1 224   delphi
5 为什么我尝试替换字符串中的字符失败?

我有一个字符串(取自MySQL数据库,如果有任何区别),看起来很正常: 问题是Manufacture:和&lt;a&gt;标记之间的空格的字符为194,而不是我期望的32。 这将导致具有以下模式的preg_match失败(请忽略使用正则表达式解析HTML的尝试,我知道这不是一个好主 ...

6 尝试从字符串 C++ 中删除特定字符

我需要帮助从字符串中删除一些非字母字符。 我一直在使用一种方法,您可以在其中查找不在 az 和 AZ 区域内的ascii符号。 它删除了一些字符,如“!”和“?”,但它不会从单词的末尾删除“”和“)”。 这段代码从一个文本文件中获取数据,其中包含一个随机故事,它将修改后的单词保存到一个名为“wo ...

2020-12-16 21:40:37 1 38   c++
7 尝试从字符串中删除特定字符

我正在尝试编写一个快速功能来删除下划线字符 但是,在打印时,它将正确纠正前8个字符,并在末尾附加一个垃圾“ 8”值,而不是换行符。 谁能解释为什么? 还是提供一种更简单的方法? ...

8 尝试通过 JavaScript 从字符串中删除一些字符

我有一个脚本来解析 SVG 图像。 我正在尝试解析一个名为“opacity”的属性并删除句点和零,而不是添加一个零,如果它等于“0.8”,例如。 不过,数字 8 可以是任何小于 10 的数字。 所以基本上如果它以“0”开头。 删除它并在“8”后添加“0”。 所以假设不透明度值为“0.8”,我希望它 ...

9 尝试(但失败)使用字符串测试路径

基本上,我设置了一个变量,我想检查文件是否存在。 如果没有,则需要创建它。 我认为我在使用变量或字符串值时遇到了麻烦...我不确定。 无论如何,它只能工作一次! 创建完成后,我通过删除文件进行了测试。 该脚本从未提示我重新创建文件... 因此,这就是脚本...。除非对$Hash ...

10 jQuery尝试附加HTML字符串失败

我正在尝试将以下字符串附加到jQuery开头: 但是它总是失败。 例如,尝试对'Hello'字符串执行相同操作即可。 在代码段之后,我使用了附加字符串: 第一个字符串是解析integrationData的结果。 任何帮助将不胜感激。 编辑:我意识到我用第一个字符串误导 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM