C++从txt中提取数据时无法使气泡排序起作用
C++ can't get bubble sort to work when extracting data from txt
我对编程相当陌生,并且正在努力从文本文件读取值时使气泡排序工作。下面是我的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream myFile;
myFile.open("D:/University/Physics/3 - Third Year/C++/2/simpledata.txt");
char myArray[100];
if( myFile.is_open() ){
while( !myFile.eof() ){
myFile >> myArray;
cout << myArray << endl;
}
}
bool swap=false;
do{
swap=false;
for(int i=0; i<36; i++){
if(myArray[i] > myArray[i+1])
{
float temp = myArray[i+1];
myArray[i+1] = myArray[i];
myArray[i] = temp;
swap=true;
}
}
}while(swap==true);
for(int i=0; i<37; i++)
{
std::cout << myArray[i] << ",";
}
std::cout << std::endl;
return 0;
myFile.close();
return 0;
}
下面是我的txt文件中的数据:
1 4 5 6 8 7 6.3 5.2 18 17.1 -3.2 -4 -5 -4 12 7 9 20 21.1 22 22.3 14 15 12 12.1 11 16 7 4 -1 8 17.2 16 13.1 15
现在,当我在程序中创建一个数组时,冒泡排序工作得很好,但是当我从txt文件读取数据到'myArray'后尝试同样的排序时,我得到了很多奇怪的符号,像这样:
我尝试的一件事是将'char myArray[100]'更改为'float myArray[100]',但这给了它自己的问题。
任何帮助都是感激的,如果我说得太含糊,我道歉。
您可以将其更改为float myArray[100],但是您的文件读取代码应该是这样的:
if( myFile.is_open() ){
float* tempArr = myArray;
while( myFile >> *tempArr ){
cout << *tempArr << endl;
++tempArr;
}
}
完整的代码示例在这里
http://codepad.org/LTQ402pE你在排序中有错误,为什么你不直接声明双精度数组而不是字符?
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream myFile;
myFile.open("D:/University/Physics/3 - Third Year/C++/2/simpledata.txt");
double myArray[37];
int i = 0;
if( myFile.is_open() )
{
while( myFile >> myArray[i] )
{
cout << myArray[i] << endl;
i++;
}
}
cout << endl << endl;
for( i = 0; i < 37; i++)
{
for(int j = (i + 1); j < 37; j++)
{
if(myArray[i] > myArray[j])
{
double temp = myArray[i];
myArray[i] = myArray[j];
myArray[j] = temp;
}
}
}
for( i = 0; i < 37; i++)
{
std::cout << myArray[i] << ",";
}
std::cout << std::endl;
return 0;
myFile.close();
return 0;
}
相关文章:
- 在气泡排序程序中未声明错误功能
- 气泡排序未正确循环
- 带有枚举方向/类型的气泡排序结构数组
- 在气泡排序中使用递归
- 如何在C++中实现气泡排序?
- 比较迭代器会使程序崩溃,而不会在自定义气泡排序实现中出现错误
- C++气泡排序的问题
- 气泡排序C++ OOP
- OOP 气泡排序C++程序
- 按升序对列表进行排序,C++使用气泡排序
- C++气泡排序
- 此气泡排序代码中的错误是什么?
- 气泡排序 2D 数组
- 如何使用气泡排序从最小到最大对 4 个数组进行排序? C++
- 添加气泡排序代码以排列列表
- 使用向量和气泡排序的动态内存分配
- 带修改(偏移)的气泡排序
- 使用C++进行气泡排序
- 选择排序与气泡排序C++
- 为什么我的气泡排序不适用于双精度数据类型?