我想在C中使用sscanf從字符串中獲取一些值。但是,如果字符串的值比我想要的更多,我需要它來引發錯誤。即。如果我想要一個整數,「2」應該可以,但「2 5」應該會崩潰。C:sscanf分配抑制和返回值
現在使用上sscanf的返回值,像這樣:
if (sscanf(mystring, "%d %*s", &num) == 1)
不起作用,因爲它會返回1,即使字符串是更長的時間。我可以這樣做:
char tmpString [100];
if (sscanf(mystring, "%d %s", &num, tmpString) == 1)
它工作正常,但它不是特別好。有另一種方法嗎?我可以使用分配抑制並仍然獲得我想要的返回值嗎?
編輯 這是我所使用的代碼:
char c; // This is a global variable, just gets used over and over.
sscanf(mystring, "%d%c", &num, &c);
if (c == '\n') {
我通常這樣做:'char c; if(sscanf(mystring,「%d%c」,#num,&char)== 1)' – 2012-04-14 04:26:42
如果你只是想讓它崩潰,你可以使用: 'sscanf(mystring,「%d%d」,&num1 ,&num2);'(= – dcow 2012-04-14 04:26:45
)感謝Jared。我的猜測與我的代碼相同,但只使用了一個字符更有效。 – morgoe 2012-04-14 04:35:57