teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードの追加

2021/03/27 15:13

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -12,4 +12,35 @@
12
12
  次にトライするのが
13
13
  0xc1 + 0x5f + 0x01 で 0x122 です。
14
14
  filename[0] は char なので 0x22、すなわち '"' になります。
15
- fillename は、"\"bc.txt" になりました。
15
+ fillename は、"\"bc.txt" になりました。
16
+
17
+ **追記**
18
+ やりたいことはこういうことでしょう。
19
+ ```C++
20
+ #include <iostream>
21
+ #include <fstream> // ifstream, ofstream
22
+ #include <string> // to_string
23
+ using namespace std;
24
+
25
+ void createFile(const string& filename)
26
+ {
27
+ string fname = filename;
28
+ int i;
29
+ for (i = 1; i < 1000; i++) {
30
+ ifstream fileCheck(fname);
31
+ if (fileCheck.fail()) break;
32
+ fname = filename + '_' + to_string(i);
33
+ }
34
+ if (i == 1000) return;
35
+
36
+ ofstream file(fname);
37
+ file << "abcdefg\n";
38
+ }
39
+
40
+ int main()
41
+ {
42
+ createFile("abc");
43
+ }
44
+ ```
45
+ 最初に実行すると、abc ができて、次に実行すると abc_1 ができます。
46
+ ファイルは 1000個までしかできないように制限しています。