Odchudzanie programu.

0

Witam, mam kolejny problem.
Napisałem następny program tylko tym razem za dużo waży, limit jest do 1300kb a mój waży 1800. Wydaję mi się, że z biblioteką IOSTREAM nie uda się osiągnąć tak małej wartości dlatego próbuje zrobić to na <stdio> i <string> tylko właśnie w tym miejscu jest mój problem, CIN I COUT zastąpiłem, ale fprintf nie chcę mi wyświetlać zmodyfikowanej wartości stringa.
fprintf("%s", wysw);
Z pobieraniem wartości jakoś sobie dałem radę, wygląda to tak:

      char T[ 3 ];
	scanf ("%s", T); 
	string wysw = T;

Chciałbym aby ktoś wytłumaczył mi jak za pomocą fprintf mam wyświetlić stringa, który będzie miał postać np. "477uF" lub "4,7uF". W stringach używałem inserta i erase.
Z góry dziękuję :)

1

fprintfpisze do pliku, jak chcesz na ekran to: fprintf(stdout,"%s",... albo zwykły printf

0

[Error] cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...'

A zróbiłem według Twoich instrukcji:
fprintf(stdout,"%s", wysw);
Właśnie z tym nie mogę sobie poradzić.

0

Próbowałeś kompilacji z optymalizacją i bez dołączania symboli? (dla gcc -O2 lub -Os, bez -g)

2

std::string niezbyt kompatybilne z printf/scanf

fprintf(stdout,"%s",wysw.c_str());

ze scanf'em będzie znacznie gorzej.

0

Dziękuję, wszystko działa scanfa zrobiłem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1