a372187663 发表于 2014-5-24 16:49:57

C++中我想输入文件名,然后用以文件名删除文件

string str;
cin >> str;
system("del str");
这个方法行不通啊。还有更好的办法么?

elvo 发表于 2014-5-24 16:49:58

使用remove函数:#include <stdio.h>

int main(void)
{
        char file;
        printf("File to delete: ");
        gets(file);

        if(remove(file) == 0)
                printf("Removed %s.\n",file);
        else
                perror("remove");
        return 0;
}

elvo 发表于 2014-5-24 17:44:32

最好是使用remove函数,不过对于你使用system这种方法,其实是可以运行的:#include <iostream>
#include <string.h>

using namespace std;

int main(void)
{
        char file;
        char commad="del ";
        cout<<"File to delete: ";
        cin.getline(file,80);
        strcat(commad,file);
        system(commad);
        return 0;
}

a372187663 发表于 2014-5-24 18:11:54

elvo 发表于 2014-5-24 17:44 static/image/common/back.gif
最好是使用remove函数,不过对于你使用system这种方法,其实是可以运行的:

高!不过你提醒我用remove方法了,我去看了一下可以用。
不过还有一个问题
文件中有如下数据
2014-4-4
2014-4-5
2014-4-6
我要删除某一行,我的方法不行呀,方法如下。
      date = "2014-4-5"
      for(str;getline(*fin,str);)
        {
                if(date == str)
                {
                        str = "";
                }
        }


qq893161525 发表于 2014-5-24 18:25:31

所啊倒萨打算打算

elvo 发表于 2014-5-24 18:33:21

a372187663 发表于 2014-5-24 18:11 static/image/common/back.gif
高!不过你提醒我用remove方法了,我去看了一下可以用。
不过还有一个问题
文件中有如下数据


第一种方法.先将文件中的数据全部读到内存中,可以用链表存储,删除你先删除的某行,然后将数据全部写到文件。

第二种,一行一行读取。这个就要新建一个文件2,从原始文件读取一行,写入到文件2,需要删除的就不写进文件2,全部操作完了。。然后删除原始文件,重命名文件2为原始文件名

牡丹花下死做鬼 发表于 2014-5-24 19:10:24

←_← 这么写当然不行啊 引号下 str 就是"str"这个文本不是变量
用strcat先把字符串连起来
页: [1]
查看完整版本: C++中我想输入文件名,然后用以文件名删除文件