Strcmp用户输入和文件输入不匹配

spartin503

对于作业,我必须从具有目录列表的文本文件中删除一行。用户输入文件名,包括该文件名的目录必须删除。对于分配,我必须使用char数组。我有一个问题,当strcmp应该返回0时返回-13,但这仅在应该删除的那一行之后还有另一行时才会发生。这里是有问题的代码:

void deleteSong()
{
    char userSongName[ENTRY_SZ], objectSongName[ENTRY_SZ];
    cout << "Enter the name of a song you want to delete.\n";
    cin.getline(userSongName, ENTRY_SZ);
    Node* tempNode = musicList.GetFirstNode();
    for (int n = 0; n < musicList.GetListLength(); n++)
    {
        strncpy(objectSongName, static_cast<Song*>(tempNode->data_)->GetSongName(), ENTRY_SZ);
        cout << strcmp(userSongName, objectSongName) << endl;
        if (!strcmp(userSongName, objectSongName))
        {
            ifstream songFileDir;
            ofstream tempFileDir;
            songFileDir.open(Song::songListFile_);
            tempFileDir.open("temp.txt");
            while (songFileDir.getline(userSongName, ENTRY_SZ))
            {
                if (!userSongName[0] == '\0')
                {
                    if (strcmp(strrchr(userSongName, '\\') + 1, objectSongName))
                    {
                        tempFileDir << userSongName << endl;
                    }
                }
            }
            songFileDir.close();
            songFileDir.clear(ios_base::goodbit);
            tempFileDir.close();
            tempFileDir.clear(ios_base::goodbit);
            remove(Song::songListFile_);
            rename("temp.txt", Song::songListFile_);
            musicList.RemoveThisLink(tempNode); //This calls a function that removes the node from the linked list.
            delete tempNode;
            return;
        }
        tempNode = tempNode->next_;
    }
    cout << "Song was not found.\n";
    return;
}
莫希特·贾恩(Mohit Jain)

返回-13

13是回车的ascii。看来第二个参数在末尾包含一个额外的CR。

解决方法通过删除参数字符串的所有尾随空格(“ ctype.h”,isspace)字符(或用替换字符)来
修剪'\0'字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用户输入与文件中的数据不匹配

来自分类Dev

隐藏与用户输入不匹配的元素

来自分类Dev

C ++文件处理-输出与输入不匹配

来自分类Dev

从文件读取时输入不匹配

来自分类Dev

该程序为什么无法比较用户输入和文件?

来自分类Dev

为什么我的文件内容/用户输入不匹配?(缺少冠军规范)

来自分类Dev

输入不匹配异常

来自分类Dev

输入','期望')'不匹配

来自分类Dev

输入不匹配异常

来自分类Dev

输入不匹配

来自分类Dev

输出与输入不匹配

来自分类Dev

输入不匹配int

来自分类Dev

不匹配的输入 '.' 在规则

来自分类Dev

输入不匹配 JNA

来自分类Dev

正确的用户输入不匹配数组值

来自分类Dev

随机生成的数字结果与用户输入不匹配

来自分类Dev

解决歧义输入:输入不匹配

来自分类Dev

TensofrlowJS输入与模型预期输入不匹配

来自分类Dev

从文件读取双精度字时输入不匹配

来自分类Dev

将用户输入与 Python 中的文件记录匹配

来自分类Dev

匹配来自整个 csv 文件 R 闪亮的用户输入

来自分类Dev

C# Visual Studio 用户输入的文件路径和文件名

来自分类Dev

用户输入服务的输入开始不触发

来自分类Dev

用户输入文件路径

来自分类Dev

ANTLR输入不匹配错误

来自分类Dev

ANTLR输入'<EOF>'不匹配

来自分类Dev

输入长度不匹配scikit

来自分类Dev

直方图输出与输入不匹配

来自分类Dev

为什么输入不匹配?