Witam, mam problem z którym nie potrafię sobie poradzić. Chodzi o to ze mam wczytywać z pliku po 3 liczby . Plik wyglada w taki sposob: (2,5,7),(4,6,8),(1,2,3). Kazdy ciag 3 liczbowy jest oddzielony nawiasem a po nawiasie występuje przecinek. Nie mogę nic wymyślić żeby pozbyć się tych nawiasów oraz przecinków (wszystko kończy się błędem albo wyjątkiem).
rixis321 napisał(a):
Witam, mam problem z którym nie potrafię sobie poradzić. Chodzi o to ze mam wczytywać z pliku po 3 liczby . Plik wyglada w taki sposob: (2,5,7),(4,6,8),(1,2,3). Kazdy ciag 3 liczbowy jest oddzielony nawiasem a po nawiasie występuje przecinek. Nie mogę nic wymyślić żeby pozbyć się tych nawiasów oraz przecinków (wszystko kończy się błędem albo wyjątkiem).
Pokaż kod, który już masz.
#include <iostream>
using namespace std;
int main() {
char ch;
int pos = 0;
int a, b, c;
while(cin >> ch) {
int varno = ((pos % 8) + 1) / 2;
int value = ch - '0';
if (((pos % 8) & 1) && (varno < 4)) {
switch(varno) {
case 1: a = value; break;
case 2: b = value; break;
case 3: {
c = value;
cout << "a: " << a << ", b: " << b << ", c: " << c << "\n";
break;
}
}
}
pos++;
}
return 0;
}
Witam.
Proszę trzymaj kod @rixis321
#include<iostream>
#include<fstream>
using namespace std;
class program
{
public:
program();
~program();
void show()const;
void format(char znak);
private:
string dane;
fstream plik;
};
int main()
{
program *obj=new program();
obj->format('(');
obj->format(')');
obj->format(',');
obj->show();
delete obj;
}
program::program()
{
plik.open("liczby.txt",ios::in);
if(plik.good())
{
while(getline(plik,dane))
{
cout<<dane<<endl;
}
}
}
program::~program()
{
plik.close();
}
void program::show()const
{
cout<<dane<<endl;
}
void program::format(char znak )
{
int pozycja=0;
string::size_type tym;
while(pozycja<this->dane.size())
{
tym=this->dane.find(znak,pozycja);
if(tym!=string::npos)
{
this->dane.erase(tym,1);
}
pozycja++;
}
}
Życzę miłego dnia. Pozdrawiam serdecznie.
Myślałem, że wszyscy uszanują:
katakrowa napisał(a):
Pokaż kod, który już masz.
żeby nie promować lenistwa.
Tymczasem, widzę kody, na których lepiej się nie wzorować, a pytający mógłby je uznać za dobre.
Tylko z tego powodu zamieszczam, swój kod:
https://godbolt.org/z/T8sn39
struct Data
{
int a, b, c;
};
std::istream& operator>>(std::istream& in, Data& d)
{
char open, close, comma1, comma2;
if (in >> open >> d.a >> comma1 >> d.b >> comma2 >> d.c >> close) {
if (open != '(' || close != ')' || comma1 != ',' || comma2 != ',') {
in.setstate(std::ios::badbit);
}
}
return in;
}
int main()
{
Data a;
while (std::cin >> a) {
std::cout << "a:" <<a.a << " b:" << a.b << " c:" << a.c << '\n';
char sep;
std::cin >> sep;
if (sep != ',') break;
}
return 0;
}
Pisane na szybko, więc jest jeszcze miejsce na poprawki.
Kurde liczylem na jakies podpowiedzi w zwiazku z pisaniem kodu. Dziękuję wszystkim za odpowiedzi udało mi się to ogarnąć z wasza pomocą.