0
這段代碼應該從一個文件中獲取整數並對其進行排序,並獲取文件中的第一個整數,該整數是要排序的整數數量,隨後的整數是要整理的整數。我不明白fgets和sscanf是如何協同工作的。有人可以解釋fgets和sscanf在這段代碼中的工作原理嗎?fgets和sscanf
FILE *finput;
int *array_int, c1, no_elem;
char numlines[500];
fgets(numlines, 500, finput);
array_int = (int *)malloc(sizeof(int)*no_elem);
if ((sscanf(numlines, "%d", &no_elem) == 1) && array_int!= NULL)
{
for(c1=0; fgets(numlines, 500, finput) != NULL;)
{
if (sscanf(numlines, "%d", &array_int[c1])==1)
{
++c1;
}
}
}
你可以添加一個爲什麼'fscanf'可能不安全的例子嗎? – galymzhan 2012-03-25 08:39:51
@galymzhan想不出任何我的頭頂。爲什麼? – littleadv 2012-03-25 08:41:20
因此,fgets獲取整數,sscanf將該整數分配給array_int?我對嗎?爲什麼sscanf中有== 1? – John 2012-03-25 08:41:28