Tu as tout faux.
Le premier cas est à utiliser sous MinGW, parce qu'il utilise la bibliothèque runtime de Visual 6; ainsi que toute version de Visual strictement inférieure à 8.
En clair, il faudrait plutôt un truc comme ça:
Par contre, même les versions récentes du run-time de Visual ne supportent pas %z pour les types comme size_t. Dans tous les cas, sous Windows, on est obligé d'utiliser %Id ou %Iu.
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #ifndef USE_I64_FOR_LONGLONG_FORMAT //If compiling for Win32 but not for Visual 8.0 or later, //Use %I64d or %I64u for long long format. #if defined(_WIN32) && !(defined(_MSC_VER) && _MSC_VER >= 1400) #define USE_I64_FOR_LONGLONG_FORMAT 1 #else #define USE_I64_FOR_LONGLONG_FORMAT 0 #endif #endif ... #if USE_I64_FOR_LONGLONG_FORMAT fscanf(f, "%d %I64i %lf ", &n, &N0, &ms); #else fscanf(f, "%d %llu %lf ", &n, &N0, &ms); #endif
Partager