从每行包含一个值的“ numbers.txt”中读取,然后用C语言按顺序输出这些数字(冒泡排序)

https://i.stack.imgur.com/XRrJv.png

int main() {

  FILE* myFile;
  myFile = fopen("numbers.txt","r");

  //read file into array
  int numberArray[3];
  int i;

  if (myFile == NULL) {
    printf("Error Reading File\n");
    exit(0);
  }

  for (i = 0; i < 3; i++) {
    fscanf(myFile,"%d,",&numberArray[i]);
  }

  for (i = 0; i < 3; i++) {
    printf("Number is: %d\n\n",numberArray[i]);
  }

  fclose(myFile);

  return 0;
}

到目前为止,这是我所得到的,在文本文件中,我只输入了3个数字进行测试,得出的结果就是

“数字为:-858993460

数字是:-858993460

数字是:-858993460“

总体而言,我只是在读取文件并将这些值放入“ old []”数组时遇到麻烦,然后我可以对这些数字进行冒泡排序并将其复制并写入另一个将在控制台中打印的“ sorted []”数组中在Visual Studio上

cctvmtv1982 回答:从每行包含一个值的“ numbers.txt”中读取,然后用C语言按顺序输出这些数字(冒泡排序)

也许尝试使用类似fgets的方法代替fscanf

char fileInput[10];
for(int i = 0; i < sizeof(numberArray)/sizeof(int); i++){
fgets(fileInput,10,myFile);
numberArray[i] = atoi(fileInput);
}    

请注意,使用此代码,只能从文件中读取最多10位数字。

本文链接:https://www.f2er.com/3062274.html

大家都在问