나는 이런 식으로하고 싶다 : 루프에서 첫 번째 반복 file0.txt, 두 번째 반복 file1.txt라는 파일에 몇 가지 내용을 작성하고, 그냥 번호를 증가시킵니다. 할루프에서 쓰는 동안 파일 이름을 동적으로 변경하는 방법은 무엇입니까?
답변
int k = 0;
while (true)
{
char buffer[32]; // The filename buffer.
// Put "file" then k then ".txt" in to filename.
snprintf(buffer, sizeof(char) * 32, "file%i.txt", k);
// here we get some data into variable data
file = fopen(buffer, "wb");
fwrite (data, 1, strlen(data) , file);
fclose(file);
k++;
// here we check some condition so we can return from the loop
}
FILE *img;
int k = 0;
while (true)
{
// here we get some data into variable data
char filename[64];
sprintf (filename, "file%d.txt", k);
file = fopen(filename, "wb");
fwrite (data, 1, strlen(data) , file);
fclose(file);
k++;
// here we check some condition so we can return from the loop
}
그래서의 sprintf를 사용하여 파일명을 만들 C++에서 :
#include <iostream>
#include <fstream>
#include <sstream>
int main()
{
std::string someData = "this is some data that'll get written to each file";
int k = 0;
while(true)
{
// Formulate the filename
std::ostringstream fn;
fn << "file" << k << ".txt";
// Open and write to the file
std::ofstream out(fn.str().c_str(),std::ios_base::binary);
out.write(&someData[0],someData.size());
++k;
}
}
(즉, C 용액이지만 태그가 정확하지 않도록) 다른 방식
char filename[16];
sprintf(filename, "file%d.txt", k);
file = fopen(filename, "wb"); ...
:
FILE *img;
int k = 0;
while (true)
{
// here we get some data into variable data
file = fopen("file.txt", "wb");
fwrite (data, 1, strlen(data) , file);
fclose(file);
k++;
// here we check some condition so we can return from the loop
}
좋은 해결책, 저와 함께 일했습니다 :) –
나는 아래의 방식으로 이것을 수행했다. 다른 예제 들과는 달리, 이것은 실제로 preprocessor includes 옆에 수정없이 의도 한대로 실제로 컴파일되고 작동합니다. 아래의 솔루션은 50 개의 파일 이름을 반복합니다.
int main(void)
{
for (int k = 0; k < 50; k++)
{
char title[8];
sprintf(title, "%d.txt", k);
FILE* img = fopen(title, "a");
char* data = "Write this down";
fwrite (data, 1, strlen(data) , img);
fclose(img);
}
}
당신은 51 개의 이름을 의미합니다 : 0과 50은 하나의 이름으로 계산됩니다 (계정을 잊어 버렸던 것이 확실하지 않습니다). 0에서 10 (<11) 사이에 실제로 11 개의 이름이 있음을 알면 빠르게 확인할 수 있습니다. – insaner
알겠습니다. 그 고정. –
- 1. dispatch_apply (GCD) 루프에서 배열에 쓰는 방법은 무엇입니까?
- 2. App.config의 이름을 변경하는 방법은 무엇입니까?
- 3. log4j 로그 파일을 동적으로 변경하는 방법은 무엇입니까?
- 4. gridview에서 열 이름을 임의로 변경하는 방법은 무엇입니까?
- 5. 파이썬 모듈 이름을 변경하는 방법은 무엇입니까?
- 6. PHP에서 최대 업로드 파일 한도를 동적으로 변경하는 방법은 무엇입니까?
- 7. MATLAB GUIDE 그림 콜백 파일 이름을 변경하는 방법은 무엇입니까?
- 8. 클래스 이름을 동적으로 설정하는 방법은 무엇입니까?
- 9. 런타임 동안 ActiveRecord의 테이블 이름을 변경하는 방법
- 10. DataGrid 행의 배경색을 동적으로 변경하는 방법은 무엇입니까?
- 11. 안드로이드에서 xml 배경을 동적으로 변경하는 방법은 무엇입니까?
- 12. 수퍼 클래스를 동적으로 변경하는 방법은 무엇입니까?
- 13. 뷰 상태 값을 동적으로 변경하는 방법은 무엇입니까?
- 14. C# .NET에서 동적으로 backgroundimage를 변경하는 방법은 무엇입니까?
- 15. 수평선의 색상을 동적으로 변경하는 방법은 무엇입니까?
- 16. Canvas의 크기를 동적으로 변경하는 방법은 무엇입니까?
- 17. JavaScript로 이벤트 핸들러를 동적으로 변경하는 방법은 무엇입니까?
- 18. 레이블 글꼴 크기를 동적으로 변경하는 방법은 무엇입니까?
- 19. ListViewItem의 배경색을 동적으로 변경하는 방법은 무엇입니까?
- 20. 동적으로 jqplot 렌더러를 변경하는 방법은 무엇입니까?
- 21. Crystal 보고서의 위치를 동적으로 변경하는 방법은 무엇입니까?
- 22. JSP에서 월을 동적으로 변경하는 방법은 무엇입니까?
- 23. jquery로 페이지로드시 요소 이름을 변경하는 방법은 무엇입니까?
- 24. testNG 보고서 출력 이름을 변경하는 방법은 무엇입니까?
- 25. iPhone에서 앱의 이름을 변경하는 방법은 무엇입니까?
- 26. Sparkle Framework : 애플리케이션 이름을 변경하는 방법은 무엇입니까?
- 27. PCAP 캡처 파일 헤더를 쓰는 방법은 무엇입니까?
- 28. Java로 동적으로 객체 이름을 지정하는 방법은 무엇입니까?
- 29. 동적으로 telerik의 radgrid 특정 컬럼을 동적으로 변경하는 방법은 무엇입니까?
- 30. GNOME에서 C/C++로 파일 아이콘의 상징을 변경하는 방법은 무엇입니까?
+1 'sprintf'에 대한 snprintf입니다. –