gpt4 book ai didi

c++ - 与字符串文字 C++ 的比较

转载 作者:行者123 更新时间:2023-11-28 00:17:54 24 4
gpt4 key购买 nike

我正在为允许学生复制模板文本文件的程序编写函数。此函数检查用户的输入以查看他的类(class)是否允许使用他想要的模板。

我在第 21 行和第 25 行收到错误“与字符串文字进行比较会导致未指定的行为”。我已经执行了“cout << name”以验证变量是否正确存储,确实如此,所以我知道那是不是问题。

#include <iostream>
#include <string>
#include <fstream>
using namespace std;

//TEMPLATE CHECK
//First you check to see if the student is allowed to use the template
int templateCheck()
{
//Declare file name variable
char name[256];

//Prompt for user input
cout << "Enter file name: ";

//Cin user input
cin >> name;

//Begin check
//CS221 is the first template you can't use
if(name == "/home/cs221Temp.txt")
cout << "You are not allowed to use CS221 templates./n";

//CS 321 is the other template you can't use
else if (name == "/home/cs321Temp.txt")
cout << "You are not allowed to use CS321 templates./n";

//Any others are okay (I commented these out since I'm just working on this function by itself)
//else
//copyTemplate();

return 0;
}

最佳答案

这个声明

if(name == "/home/cs221Temp.txt")

比较指针是否相等(这不太可能),而不是它们的内容。
你真正想要的是

if(strncmp(name,"/home/cs221Temp.txt",256) == 0)

std::string name;

在你的函数中。

关于c++ - 与字符串文字 C++ 的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29087406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com