//all variables are declared in a struct StockPile
//...
string itemid;
string itemdesc;
string datepurchased;
string line;
int unitprice;
int totalsales;
std::string myline;
//...
void displaydailyreport() {
ifstream myfile("stockdatabase.txt");
for(int i=0;std::getline(myfile,myline);i++)
{
// Trying to grep all data with a specific date from a textfile,
cout<<system("grep "<<stockpile[i].datepurchased<<" stockdatabase.txt")<<endl;
}
cout<<endl;
}
Когда я пытаюсь скомпилировать это дает мне эту ошибку:Ошибка при выполнении команды оболочки в C++ Ubuntu Linux
note:template argument deduction/substitution failed:
Main.cpp:853:40: note: mismatched types ‘std::basic_ostream<_CharT, _Traits>’ and ‘const char [6]’
cout<<system("grep "<<stockpile[i].datepurchased<<" stockdatabase.txt")<<endl;
Когда я пытаюсь запустить с этим он прекрасно работает:
cout<<system("grep '9oct16' stockdatabase.txt")
stockpile[i].datepurchased
где я могу cout
разные даты, хранящиеся в моем текстовом файле, я могу распечатать значения stockpile[i].datepurchased
в цикле for. Он возвращает строку 9oct16, 10oct16 и т. Д., Но когда я пытаюсь использовать команду оболочки, она не компилируется.
В '' grep '<< файл [i] .datepurchased', компилятор не мог понять, что вы имели в виду под '<<'. Я тоже. – v7d8dpo4