std::vscanf, std::vfscanf, std::vsscanf
#include <cstdio>
#include <iostream>
#include <cstring>
#include <cstdarg>
using std::vscanf,
std::vfscanf,
std::vsscanf,
std::va_list,
std::FILE,
std::fopen,
std::fclose,
std::strcpy,
std::cerr;
int main(){
auto readStream = [](char* format, ...){
va_list l;
va_start (l, format);
vscanf(format, l);
va_end (l);
};
cerr << "type string then number:";
char format[20]{};
strcpy(format,"%s %i\0");
char ch[20]{};
int num = 0;
readStream(format, ch, &num);
cerr << "ex 1 str: " << ch << " num: " << num << "\n";
auto readFile = [](char* format, ...){
FILE* f = fopen("ztext.txt", "a+");//make sure there's a string and number in ztext.txt
va_list l;
va_start (l, format);
vfscanf(f, format, l);
va_end (l);
fclose(f);
};
readFile(format, ch, &num);
cerr << "ex 2 str: " << ch << " num: " << num << "\n";
auto readCharacterString = [](char* format, ...){
const char buffer[100]{"truck 50\0"};
va_list l;
va_start (l, format);
vsscanf(buffer, format, l);
va_end (l);
};
readCharacterString(format, ch, &num);
cerr << "ex 3 str: " << ch << " num: " << num << "\n";
return 0;
}
C++ Examples© 2024 TBD