में परिवर्तित नहीं हो रहा है किसी कारण से मेरा सी प्रोग्राम इनवर्ट्स के तत्वों को इनट्स में परिवर्तित करने से इंकार कर रहा है, और मैं यह नहीं समझ सकता कि क्यों।चार int
int main(int argc, char *argv[])
{
fprintf(stdout, "%s\n", argv[1]);
//Make conversions to int
int bufferquesize = (int)argv[1] - '0';
fprintf(stdout, "%d\n", bufferquesize);
}
और यह उत्पादन जब 50 ./test चल रहा है:
-1076276207
मैं (int) को बाहर निकालने की कोशिश की है, फेंकने दोनों एक * और एक & बीच (int) और argv [1] - पूर्व ने मुझे 5 दिया लेकिन 50 नहीं, लेकिन बाद वाले ने मुझे उपरोक्त के समान आउटपुट दिया। - '0' ऑपरेशन को हटाने से ज्यादा मदद नहीं मिलती है। मैंने एक char first = argv [1] बनाने की कोशिश की और इसके बजाय रूपांतरण के लिए पहले उपयोग किया, और यह अजीब रूप से पर्याप्त इनपुट के बावजूद मुझे 17 दिया।
मैं बेहद उलझन में हूं। क्या हो रहा है?
मुझे लगता है कि आप का अर्थ हो सकता है 'argv [1] [0] '(प्रकार' char') <- पहला तर्क (निष्पादन नाम के बाद) का पहला अक्षर। बेशक, अभी भी इसके साथ कोई जांच नहीं है और बेहतर तरीके हैं।"त्रुटि को दूर करने" की कोशिश न करें (जैसे 'argv [1]' को 'char *' के रूप में टाइप किया गया है) क्योंकि यह अक्सर काम नहीं करता है :-) –