0
我試圖創建一個簡單的程序,讓我來遞增當前整並替換最後一個「n個字符」中的一個char *。生成「下一個號碼」,並將其添加爲char *
但是,無論我做什麼,它只是遍佈輸出同樣的事情。
e.g指數= 1
輸出: XX201701 XX201702 XX201703 XX201704 ... XX201710
有人能不能告訴我什麼我做錯了什麼?
#include<iostream>
using namespace std;
int index = 1;
char* GenerateNext()
{
char* def = new char[9];
char buffer[9];
int counter = 0;
int temp = index;
while (temp != 0)
{
temp /= 10;
counter++;
}
strncpy_s(def, 9, "XX160000", 8 - counter);
_itoa_s(counter, buffer, 9, 10);
strcat_s(def, 9, buffer);
index++;
return def;
}
int main()
{
char* generated = GenerateNext();
char* generated2 = GenerateNext();
cout << generated << endl << generated2 << endl;
delete[] generated;
delete[] generated2;
generated = nullptr;
generated2 = nullptr;
system("PAUSE");
return 0;
}
什麼是預期的結果? – SingerOfTheFall
你在做什麼錯?使用新的和C字符串。忘記用於管理字符串的顯式新字符和字符指針。只需使用std :: string即可。並扔掉系統(「暫停」);有cin.get(); –
預期的結果將是,因爲它上面所提到的:XX201701,XX201702,XX201703,XX201704,... XX201710 – Arman