2016-11-18 2 views
0

Я довольно новичок в C++ и создаю программу, которая принимает аргумент командной строки и подсчитывает, сколько аргументов затем печатает количество символов и сколько из них в алфавитном порядке. Я получаю этот код ошибки Формат «% с» ожидает аргумент типа «Int», но аргумент 2 имеет тип «символ *»C++ код ошибки Формат '% c' ожидает аргумент типа 'int'

(мой код)

#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

В этом коде имеется ряд опечаток. '0' вместо') ',' is alpha' (не должно быть пробела) и отсутствующих '}' скобок. Это точный код, который вы пытались скомпилировать? – smead

+0

не просто то, что я считал необходимым –

+0

Код ошибки сообщает вам, что случилось. Почему бы вам не изменить totalLength на тип int, как он спрашивает? – tinstaafl

ответ

0

argv является массив char* так argv[pos] возвращает char*, поэтому вы должны использовать %s. В конце концов, правильный формат:

printf("%s and %c is it's length.\n", argv[pos], totalLen); 
Смежные вопросы