【问题标题】:c++ error code Format '%c' expects argument of type 'int'c ++错误代码格式'%c'需要'int'类型的参数
【发布时间】:2016-11-18 03:41:27
【问题描述】:

我是 C++ 的新手,我制作了一个程序,它接受一个命令行参数并计算有多少参数,然后打印字符的数量以及其中有多少是按字母顺序排列的。我收到此错误代码 格式“%c”需要“int”类型的参数,但参数 2 的类型为“char*”

(我的代码)

#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
int main(int argc, char *argv[])
{
    /*
    irrelevant 
    printf 
    statements
    */

    for(pos=0; pos < maxCharLen; pos++){
        int count;

        char totalLen = strlen(argv[pos]);
        char totalAlpha (isalpha(argv[pos][pos]);

        printf("Argument %d is", count);
        printf("%c and %c is it's length.\n", argv[pos], totalLen);
        printf("%c are alphabetic characters\n", totalAlpha);
        count ++
    count++;
    }
    return 0;
}

【问题讨论】:

  • 这段代码有很多错别字。 0 而不是 )is alpha(不应该有空格),并且缺少 } 括号。这是您尝试编译的确切代码吗?
  • 不只是我认为必不可少的
  • 错误代码告诉你出了什么问题。你为什么不把 totalLength 改成 int 类型,就像它问的那样?
  • 如果您没有准确发布您尝试编译的内容,则很难调试您的代码。如果你看这里会有所帮助How to create a Minimal, Complete, and Verifiable example
  • 进行了更改@smead

标签: c++ command-line-arguments


【解决方案1】:

argvchar* 的数组,所以argv[pos] 返回char*,所以你应该使用%s。毕竟正确的格式是:

printf("%s and %c is it's length.\n", argv[pos], totalLen);

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    相关资源
    最近更新 更多