使用char数组的C ++ getline错误

卡洛斯

我不断收到一条错误消息,说“错误:在getline(Input,句子)上没有调用'getline(std :: ifstream&,char [100])'|”的匹配函数。我可能不确定,我不确定。我想做的是从输入中读取整行,并使用getline将其插入char句子[100]中。我必须根据分配要求使用getline。先感谢您。

char uniqueWords[100][16] = {""};
int multipleWords = 0;
int theWords[100];
int totalWords = 0;
char sentence[100];
char delimit[] = " /.";


ifstream Input;
Input.open("input.txt");
if (!Input.is_open())
{
    cout << "Error Opening File";
    exit(EXIT_FAILURE);
}

ofstream Output;
Output.open("output.txt", std::ios_base::app);
if (!Output.is_open())
{
    cout << "Error Opening File";
    exit(EXIT_FAILURE);
}


char *p;

while(!Input.eof())
{
    getline(Input, sentence);
    p = strtok(sentence, delimit);
    while(p)
    {
        Output << p ;
        words(p, uniqueWords, theWords, multipleWords);   // a function for the assignment
        totalWords++;
        p = strtok(nullptr,delimit);
    }
    create << "." << endl;
}
大卫·兰金(David C.Rankin)

问题是您正在尝试使用std :: getline而不是std :: basic_istream :: getline(例如,您使用的是错误的getline()getline()您正在尝试将期望值astd::string用于目标存储,而不是普通的旧字符数组。上面的第二种形式很高兴地采用一个字符数组及其大小作为目标存储。您可以使用:

    while (Input.getline(sentence, sizeof sentence))
    {
        p = strtok (sentence, delimit);
        while (p)
        {
            Output << p ;
            words (p, uniqueWords, theWords, multipleWords);   // a function for the assignment
            totalWords++;
            p = strtok(nullptr,delimit);
        }
        std::cout << ".\n";
    }

其他想法,看看为什么循环条件内的!.eof()总是错误的。请注意,使用流状态控制读取循环,该状态可以从输入函数中返回。另请参阅为什么“使用命名空间标准”;被认为是不好的做法?

输出错误消息时,请使用std::cerr写入stderr而不是stdout例如:

    std::ifstream Input ("input.txt");
    if (!Input.is_open())
    {
        std::cerr << "Error Opening File.\n";
        exit (EXIT_FAILURE);
    }

除此之外,您应该真正将其std::string用于字符串存储和std::vector<std::string>字符串集合的存储。您可以将每个字符串复制到一个字符数组中,以使用进行解析strtok()仔细看一下,如果您还有其他问题,请与我联系。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用char数组的C ++ getline错误

来自分类Dev

C,错误:getline的类型冲突

来自分类Dev

C ++中的getline输入错误

来自分类Dev

c ++ getline()错误,没有重载函数“ getline”的实例与参数列表匹配

来自分类Dev

在方法getline C ++之后切换Statemement反应错误

来自分类Dev

错误C3861:“ getLine”:找不到标识符

来自分类Dev

使用getline()函数的Valgrind未初始化的值错误

来自分类Dev

使用getline时出现分段错误(核心已转储)

来自分类Dev

使用getline()函数的Valgrind未初始化的值错误

来自分类Dev

在循环中使用getline()时出现分段错误

来自分类Dev

在 main() 中使用 getline() 函数时出现命名空间错误

来自分类Dev

getline错误

来自分类Dev

使用getline会产生错误:没有匹配的函数可以调用'getline(std :: istream&,const string&)'

来自分类Dev

使用getline,strcpy,strtok C ++加载.txt文件时出现运行时错误

来自分类Dev

C ++错误预期在“'”标记之前的主表达式(在ifstream上使用getline?)

来自分类Dev

C ++错误预期在“'”标记之前的主表达式(在ifstream上使用getline?)

来自分类Dev

使用 getline 和 string 函数的 C++ 程序中的分段错误

来自分类Dev

将getLine输入与haskell数组连接在一起会引发类型错误

来自分类Dev

C-使用char数组时,fgets神秘地导致段错误

来自分类Dev

关于使用malloc和char数组指针的c中的分段错误

来自分类Dev

getline()与ifstream指针错误?

来自分类Dev

MinGW的Qt getline错误

来自分类Dev

getline()与ifstream指针错误?

来自分类Dev

std :: getline错误

来自分类Dev

getline() 函数的分段错误?

来自分类Dev

在C ++中使用getline()

来自分类Dev

在C ++中使用getline()

来自分类Dev

C++ 使用 Getline

来自分类Dev

如何在不使用getline()覆盖的情况下在char数组中输入多行

Related 相关文章

  1. 1

    使用char数组的C ++ getline错误

  2. 2

    C,错误:getline的类型冲突

  3. 3

    C ++中的getline输入错误

  4. 4

    c ++ getline()错误,没有重载函数“ getline”的实例与参数列表匹配

  5. 5

    在方法getline C ++之后切换Statemement反应错误

  6. 6

    错误C3861:“ getLine”:找不到标识符

  7. 7

    使用getline()函数的Valgrind未初始化的值错误

  8. 8

    使用getline时出现分段错误(核心已转储)

  9. 9

    使用getline()函数的Valgrind未初始化的值错误

  10. 10

    在循环中使用getline()时出现分段错误

  11. 11

    在 main() 中使用 getline() 函数时出现命名空间错误

  12. 12

    getline错误

  13. 13

    使用getline会产生错误:没有匹配的函数可以调用'getline(std :: istream&,const string&)'

  14. 14

    使用getline,strcpy,strtok C ++加载.txt文件时出现运行时错误

  15. 15

    C ++错误预期在“'”标记之前的主表达式(在ifstream上使用getline?)

  16. 16

    C ++错误预期在“'”标记之前的主表达式(在ifstream上使用getline?)

  17. 17

    使用 getline 和 string 函数的 C++ 程序中的分段错误

  18. 18

    将getLine输入与haskell数组连接在一起会引发类型错误

  19. 19

    C-使用char数组时,fgets神秘地导致段错误

  20. 20

    关于使用malloc和char数组指针的c中的分段错误

  21. 21

    getline()与ifstream指针错误?

  22. 22

    MinGW的Qt getline错误

  23. 23

    getline()与ifstream指针错误?

  24. 24

    std :: getline错误

  25. 25

    getline() 函数的分段错误?

  26. 26

    在C ++中使用getline()

  27. 27

    在C ++中使用getline()

  28. 28

    C++ 使用 Getline

  29. 29

    如何在不使用getline()覆盖的情况下在char数组中输入多行

热门标签

归档