std :: hex 및 std :: oct 플래그가 작동하지 않는 이유는 무엇입니까?

에반

이것은 내 코드입니다.

// This program demonstrates the use of flags.

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
  string filename; bool tf; double number;

  cout << "Name a file to create/overwrite: ";
  cin >> filename;

  ofstream outfile (filename.c_str());

  if(outfile.fail())
  {
    cout << "Creating/Overwriting the file has failed.\nExiting...\n";
    return 1;
  }

  cout << "Give me a boolean (0/1): "; cin >> tf;
  cout << "Give me a large number with decimal points: "; cin >> number;

  outfile.setf(ios_base::boolalpha); // Turns on boolalpha flag.
  outfile << "Here's a boolean: " << tf << endl;

  outfile.unsetf(ios_base::boolalpha); // Unsets boolalpha flag.
  outfile << "Here's your number: " << number << endl;

  outfile.setf(ios_base::scientific); // Turns on scientific notation flag.
  outfile << "Here's your number is scientific notation: " << number << endl;

  outfile.setf(ios_base::fixed); // When possible, floating point numbers will not appear in scientific notation.
  outfile << "Here's your number in fixed notation: " << number << endl;

  outfile.setf(ios_base::hex); // Numbers will appear in hexadecimal format.
  outfile << "Here's your number in hexadecimal format: " << number << endl;

  outfile.setf(ios_base::oct, ios_base::uppercase); // Numbers will appear in uppercase, octal format.
  outfile << "Here's your number in octal format: " << number << endl;

  return 0;
}

이걸 실행하면 ...

Linux 터미널

test.txt의 내용 :

Here's a boolean: false
Here's your number: 3491.67
Here's your number is scientific notation: 3.491670e+03
Here's your number in fixed notation: 3491.67
Here's your number in hexadecimal format: 3491.67
Here's your number in octal format: 3491.67

"hex"및 "oct"플래그를 설정할 때 왜 작동하지 않습니까?

텍스트 파일에서 "16 진수 형식 :"및 "8 진수 형식 :"옆에 "3591.67"이 아닌 다른 것을 예상했습니다.

플래그를 잘못 구현 했습니까?

작은 가지

불행히도 8 진법과 16 진법 인쇄는 정수에 대해서만 작동하고 double은 작동하지 않습니다. 참조 http://stdcxx.apache.org/doc/stdlibug/28-3.html를

setf를 사용하려면 다음과 같아야합니다.

outfile.setf(ios_base::hex,ios_base::basefield);

. 또는 std : hex의 파이프, 즉 :

outfile << std::hex;

.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

std :: move가 std :: copy처럼 작동하는 이유는 무엇입니까?

분류에서Dev

std :: unique가 std :: sort를 호출하지 않는 이유는 무엇입니까?

분류에서Dev

std :: bind1st가 자유 함수에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: cout 및 printf ()가 usleep () 지연 사이에 인쇄되지 않는 이유는 무엇입니까?

분류에서Dev

std :: set_intersection이 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 std :: ref가 예상대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

값으로 전달 된 배열의 std :: size가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: basic_fstream <unsigned char>가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

C ++에서 std :: atomic에서 auto가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: string.find ()가 "<"에 대해 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: string.find ()가 "<"에 대해 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: nothrow가 gcc (4.9)에서 예상대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: uppercase가 문자열에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

`get`이 std :: vec :: Vec 및 & std :: vec :: Vec 모두에서 작동하는 이유는 무엇입니까?

분류에서Dev

std :: hex, std :: bin, std :: dec를 한 번만 유효하게 만드는 방법은 무엇입니까?

분류에서Dev

std :: future가 std :: packaged_task 및 std :: async에서 반환되는 이유는 무엇입니까?

분류에서Dev

printf ()가 커널 내에서 작동하지만 std :: cout을 사용하면 작동하지 않는 이유는 무엇입니까?

분류에서Dev

키 유형에서 참조를 사용하는 동안 람다 함수가 std :: lower_bound에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

변환 연산자가있는 클래스 출력이 std :: string에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: map의 범위 기반 for 루프에서 const std :: pair <K, V> &가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이 std :: function 및 연산자로 인해 분할 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

이 할당자가`std :: allocate_shared`에서 작동하지 않는 이유는 무엇입니까? 기괴한 템플릿 대체 오류

분류에서Dev

std :: span에 cbegin 및 cend 메서드가없는 이유는 무엇입니까?

분류에서Dev

템플릿 매개 변수 압축 해제가 std :: function에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

반환 및 반환되지 않는 std :: functions를 캐스팅 할 수있는 이유는 무엇입니까?

분류에서Dev

clang이 '-std = c99'플래그와 함께 가변 길이 배열을 사용하는 것에 대해 불평하는 이유는 무엇입니까?

분류에서Dev

std :: swap이 주소 연산자에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

std :: function이 완벽한 전달과 함께 작동하지 않는 이유는 무엇입니까?

분류에서Dev

"NOT IN"및 "NOT EXISTS"가 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    std :: move가 std :: copy처럼 작동하는 이유는 무엇입니까?

  2. 2

    std :: unique가 std :: sort를 호출하지 않는 이유는 무엇입니까?

  3. 3

    std :: bind1st가 자유 함수에서 작동하지 않는 이유는 무엇입니까?

  4. 4

    std :: cout 및 printf ()가 usleep () 지연 사이에 인쇄되지 않는 이유는 무엇입니까?

  5. 5

    std :: set_intersection이 작동하지 않는 이유는 무엇입니까?

  6. 6

    내 std :: ref가 예상대로 작동하지 않는 이유는 무엇입니까?

  7. 7

    값으로 전달 된 배열의 std :: size가 작동하지 않는 이유는 무엇입니까?

  8. 8

    std :: basic_fstream <unsigned char>가 작동하지 않는 이유는 무엇입니까?

  9. 9

    C ++에서 std :: atomic에서 auto가 작동하지 않는 이유는 무엇입니까?

  10. 10

    std :: string.find ()가 "<"에 대해 작동하지 않는 이유는 무엇입니까?

  11. 11

    std :: string.find ()가 "<"에 대해 작동하지 않는 이유는 무엇입니까?

  12. 12

    std :: nothrow가 gcc (4.9)에서 예상대로 작동하지 않는 이유는 무엇입니까?

  13. 13

    std :: uppercase가 문자열에서 작동하지 않는 이유는 무엇입니까?

  14. 14

    `get`이 std :: vec :: Vec 및 & std :: vec :: Vec 모두에서 작동하는 이유는 무엇입니까?

  15. 15

    std :: hex, std :: bin, std :: dec를 한 번만 유효하게 만드는 방법은 무엇입니까?

  16. 16

    std :: future가 std :: packaged_task 및 std :: async에서 반환되는 이유는 무엇입니까?

  17. 17

    printf ()가 커널 내에서 작동하지만 std :: cout을 사용하면 작동하지 않는 이유는 무엇입니까?

  18. 18

    키 유형에서 참조를 사용하는 동안 람다 함수가 std :: lower_bound에서 작동하지 않는 이유는 무엇입니까?

  19. 19

    변환 연산자가있는 클래스 출력이 std :: string에서 작동하지 않는 이유는 무엇입니까?

  20. 20

    std :: map의 범위 기반 for 루프에서 const std :: pair <K, V> &가 작동하지 않는 이유는 무엇입니까?

  21. 21

    이 std :: function 및 연산자로 인해 분할 오류가 발생하는 이유는 무엇입니까?

  22. 22

    이 할당자가`std :: allocate_shared`에서 작동하지 않는 이유는 무엇입니까? 기괴한 템플릿 대체 오류

  23. 23

    std :: span에 cbegin 및 cend 메서드가없는 이유는 무엇입니까?

  24. 24

    템플릿 매개 변수 압축 해제가 std :: function에서 작동하지 않는 이유는 무엇입니까?

  25. 25

    반환 및 반환되지 않는 std :: functions를 캐스팅 할 수있는 이유는 무엇입니까?

  26. 26

    clang이 '-std = c99'플래그와 함께 가변 길이 배열을 사용하는 것에 대해 불평하는 이유는 무엇입니까?

  27. 27

    std :: swap이 주소 연산자에서 작동하지 않는 이유는 무엇입니까?

  28. 28

    std :: function이 완벽한 전달과 함께 작동하지 않는 이유는 무엇입니까?

  29. 29

    "NOT IN"및 "NOT EXISTS"가 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관