回答編集履歴
3
記述の誤りの修正
test
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
```
|
34
34
|
(追記)
|
35
35
|
|
36
|
-
「自己解決」で提示されたコードとコメントを参考に更新してみました。 UTF-16
|
36
|
+
「自己解決」で提示されたコードとコメントを参考に更新してみました。 UTF-16(リトルエンディアン)のファイルから(BOM の有無にかかわらず)読み込めているようです。
|
37
37
|
|
38
38
|
なお,読み込むファイル名を引数として与えられるように変更しています。
|
39
39
|
|
2
書式改善
test
CHANGED
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
if (fopen_s(&file, fname, "r, ccs=UTF-16LE") != 0) {
|
60
60
|
printf("%s cannot be open!\n", fname);
|
61
|
-
exit(
|
61
|
+
exit(2);
|
62
62
|
}
|
63
63
|
|
64
64
|
while (fgetws(line, N, file) != NULL) {
|
1
「自己解決」を基に更新
test
CHANGED
@@ -31,4 +31,42 @@
|
|
31
31
|
}
|
32
32
|
|
33
33
|
```
|
34
|
+
(追記)
|
34
35
|
|
36
|
+
「自己解決」で提示されたコードとコメントを参考に更新してみました。 UTF-16LE(リトルエンディアン)のファイルから(BOM の有無にかかわらず)読み込めているようです。
|
37
|
+
|
38
|
+
なお,読み込むファイル名を引数として与えられるように変更しています。
|
39
|
+
|
40
|
+
```C
|
41
|
+
#include <stdio.h>
|
42
|
+
#include <stdlib.h>
|
43
|
+
#include <wchar.h>
|
44
|
+
|
45
|
+
#define N 100
|
46
|
+
|
47
|
+
int main(int argc, char *argv[])
|
48
|
+
{
|
49
|
+
FILE *file;
|
50
|
+
char *fname;
|
51
|
+
wchar_t line[N];
|
52
|
+
int num;
|
53
|
+
|
54
|
+
if (argc != 2 || (fname = argv[1]) == NULL) {
|
55
|
+
fprintf(stderr, "usage: %s file_name\n", argv[0]);
|
56
|
+
exit(1);
|
57
|
+
}
|
58
|
+
|
59
|
+
if (fopen_s(&file, fname, "r, ccs=UTF-16LE") != 0) {
|
60
|
+
printf("%s cannot be open!\n", fname);
|
61
|
+
exit(1);
|
62
|
+
}
|
63
|
+
|
64
|
+
while (fgetws(line, N, file) != NULL) {
|
65
|
+
swscanf_s(line, L"%d", &num);
|
66
|
+
printf("%d\n", num);
|
67
|
+
}
|
68
|
+
|
69
|
+
exit(0);
|
70
|
+
}
|
71
|
+
```
|
72
|
+
|