为什么这些文件没有打开?

时间:2015-11-16 01:23:21

标签: c++ io fstream

从第一天开始,我在使用C ++打开文件时遇到了问题,而且我遇到了让特定文件再次打开的问题。难道我做错了什么?我已经尝试了这个部分,有了和没有“.txt”之后,以及将它放入C盘并试图以那种方式得到它,但它仍然不起作用。

代码:

ifstream correctAnswers;
ifstream studentAnswers;

correctAnswers.open("C:\CorrectAnswers");
studentAnswers.open("C:\StudentAnswers");

if (correctAnswers && studentAnswers) {
    for (int i = 0; i < SIZE; i++) {
        correctAnswers >> answerKey[i];
        studentAnswers >> studentKey[i];

    }
}
else {
    cout << "error" << endl;
}

错误部分一直显示,所以我假设它意味着文件没有打开或文件的内容被复制到数组中。

3 个答案:

答案 0 :(得分:2)

您的文件名字符串中需要双反斜杠。

correctAnswers.open("C:\\CorrectAnswers");
studentAnswers.open("C:\\StudentAnswers");

答案 1 :(得分:2)

C(C ++)字符串中的'\'引入了转义序列。要获得实际的'\',您需要逃避逃脱 - 即"C:\\CorrectAnswers"

一个好的编译器(带有正确的错误/警告配置)通常会说“Unknown escape sequence \ C”。

答案 2 :(得分:0)

哦,我的主人。感谢你们。我在这里有一个完整的程序因为特定的部分而无法工作。我还必须添加&#34; .txt&#34;最后指向正确的方向。 ;)

public ActionResult Index(int? page)
{
    var cookie = new HttpCookie("view", "admin");
    var portalViewModel = new List<PortalViewModel>();

    var vehicles = db.Vehicles.ToList();

    var totalNumberOfUrgentItems = 0; // first total
    var totalNumberOfItemsRequireingAttention = 0; // second total

    foreach (var vehicle in vehicles)
    {
        var vm = new PortalViewModel { Vehicle = vehicle };

        if (vehicle.MotDate == null)
        {
            vm.MotNotRecorded = true;
            vm.NumberOfUrgentItems++;
        }
        if (vehicle.TaxDate == null)
        {
            vm.TaxNotRecorded = true;
            vm.NumberOfUrgentItems++;
        }

        if (vehicle.MotDate <= DateTime.Now.AddYears(-1))
        {
            vm.MotExpired = true;
            vm.NumberOfUrgentItems++;
        }
        if (vehicle.TaxDate != null && DateTime.Now.Subtract((DateTime)vehicle.TaxDate).Days >= 7)
        {
            vm.TaxWithin7Days = true;
        }
        else if (vehicle.TaxDate != null && DateTime.Now.Subtract((DateTime)vehicle.TaxDate).Days >= 30)
        {
            vm.TaxWithin30Days = true;
        }

        totalNumberOfUrgentItems += vehicle.NumberOfUrgentItems;
        totalNumberOfItemsRequireingAttention += vehicle.ItemsRequireingAttention;

        portalViewModel.Add(vm);
    }

    ViewBag["TotalNumberOfUrgentItems"] = totalNumberOfUrgentItems;
    ViewBag["TotalNumberOfItemsRequireingAttention"] = totalNumberOfItemsRequireingAttention;
    // presumably your return statement is here
}