Comment puis-je obtenir argv[] que les int?

j'ai un morceau de code comme ceci:

int main (int argc, char *argv[]) 
{
   printf("%d\t",(int)argv[1]);
   printf("%s\t",(int)argv[1]);
}

et de shell, je fais ceci:

./test 7

mais le premier printf résultat n'est pas 7, comment puis-je obtenir argv[] comme un int? merci beaucoup

  • Je sais cnicutar déjà donné la réponse, mais il aide à comprendre ce qui se passe. Savez-vous ce que argv[1] est exactement? Je veux dire, pouvez-vous expliquer pourquoi vous obtenez le résultat que vous obtenez?
  • À mon avis, argv[0] est la commande elle-même et argv[1] est le premier paramètre I entrée. Dans ce cas, est de 7.
  • Oui, c'est vrai, mais qu'en est-il? Ce type? Que pouvez-vous faire avec ça? Pourquoi ne vous obtenez le résultat que vous obtenez dans l'exemple ci-dessus? Pouvez-vous faire l'addition ou la multiplication avec elle, et si l'utilisateur n'est pas un nombre, mais ./test seven ou quelque chose?
InformationsquelleAutor Michael | 2012-03-17