要擴展C++的stdio庫的功能,你可以創建自己的函數或類來實現新的功能
#include<iostream>
#include <cstdio>
#include <cstring>
print_formatted_string
,它接受一個格式化字符串和一些參數,然后使用std::snprintf
將格式化的字符串輸出到緩沖區。最后,使用std::fwrite
將緩沖區的內容寫入文件流。void print_formatted_string(FILE* fp, const char* format, ...) {
char buffer[1024];
va_list args;
va_start(args, format);
int len = std::vsnprintf(buffer, sizeof(buffer), format, args);
va_end(args);
if (len > 0) {
std::fwrite(buffer, 1, len, fp);
}
}
print_formatted_string
函數:int main() {
FILE* file = std::fopen("output.txt", "w");
if (file == nullptr) {
std::cerr << "Error opening file"<< std::endl;
return 1;
}
print_formatted_string(file, "Hello, %s! You are %d years old.\n", "Alice", 30);
std::fclose(file);
return 0;
}
這個示例展示了如何創建一個新的函數來擴展C++的stdio庫的功能。你可以根據需要添加更多的函數和功能。