Bir .txt dosyasındaki floatları nasıl okuyabilirim? Her satırın başlangıcındaki ada bağlı olarak, farklı bir koordinat numarası okumak istiyorum. Yüzer "boşluk" ile ayrılmış.Bir .txt dosyasından okunan bilgileri oku
Örnek: triangle 1.2 -2.4 3.0
sonucu olmalıdır: float x = 1.2/float y = -2.4/float z = 3.0
dosya daha karmaşık olabilir differens şekiller başka satırlar var ama yapabileceğim bunlardan birini nasıl biliyorsanız bence diğerleri kendi başıma. Bugüne kadar
Benim Kodu:
#include <iostream>
#include <fstream>
using namespace std;
int main(void)
{
ifstream source; // build a read-Stream
source.open("text.txt", ios_base::in); // open data
if (!source) { // if it does not work
cerr << "Can't open Data!\n";
}
else { // if it worked
char c;
source.get(c); // get first character
if(c == 't'){ // if c is 't' read in 3 floats
float x;
float y;
float z;
while(c != ' '){ // go to the next space
source.get(c);
}
//TO DO ?????? // but now I don't know how to read the floats
}
else if(c == 'r'){ // only two floats needed
float x;
float y;
while(c != ' '){ // go to the next space
source.get(c);
}
//TO DO ??????
}
else if(c == 'p'){ // only one float needed
float x;
while(c != ' '){ // go to the next space
source.get(c);
}
//TODO ???????
}
else{
cerr << "Unknown shape!\n";
}
}
return 0;
}
Var denediniz [sscanf()] (http://www.cplusplus.com/reference/clibrary/cstdio/sscanf/)? – jedwards
Ayrıca, metin dosyanızdan birkaç satır, kullanıcıların önerdiği herhangi bir kodu doğrulamaya yardımcı olabilir. – jedwards
@jedwards C++ olduğunu düşünürsek, sscanf bu "getc" çöplüğünden daha iyi olmayacaktır. –