Some source code I'm working with calls the function CreateSymbolicLink() - described here. Unfortunately, I'm having to build with VC8 which doesn't seem to have that function (apparently, it should be declared in WinBase.h). Anyone know if there's a near equivalent? I feel sure there must be....
↧
CreateSymbolicLink()
↧
Using one thread at a time with CSemaphore problem
Hello
I need some help using CSemaphore class in MFC C++ application. I have an edit1 box with multil ine and each line has a string. I'm trying to loop through edit1 box and for each string to start a thread that is using the string for specific function. I'm trying to limit the run of only one thread at the same time with semaphores but all treads start at the same time.
So when i click button1 i loop through edit1 box and start threads:
While looping through edit1 box multi line and starting the threads:
Instead of running only one thread at a time all threads start. What am i doing wrong ?
Thanks for your help!!!
I need some help using CSemaphore class in MFC C++ application. I have an edit1 box with multil ine and each line has a string. I'm trying to loop through edit1 box and for each string to start a thread that is using the string for specific function. I'm trying to limit the run of only one thread at the same time with semaphores but all treads start at the same time.
So when i click button1 i loop through edit1 box and start threads:
Code:
void CMFCApplication1Dlg::onButton1Click()
{
int i, nLineCount = edit1.GetLineCount();
CString strText, strLine, mesaj;
for (i = 0; i < nLineCount; i++)
{
int len = edit1.LineLength(edit1.LineIndex(i));
edit1.GetLine(i, strText.GetBuffer(len), len);
strText.ReleaseBuffer(len);
strLine.Format(_T("%s"), strText);
THREADSTRUCT *_param = new THREADSTRUCT;
_param->dlsg = this;
_param->link = strLine;
CSemaphore semafor(1, 1); // here i limit only one instance of thread at a time ???
CWinThread* tread[5];
tread[i] = AfxBeginThread(StartThread, _param);
}
}
Code:
UINT CMFCApplication1Dlg::StartThread(LPVOID param)
{
WaitForSingleObject(semafor, INFINITE); // wait for semafor to signal
THREADSTRUCT* ts = (THREADSTRUCT*)param;
// here i'm doing some operations with the string from edit1 box
ReleaseSemaphore(semafor, 1, NULL); //release the semaphore for next thread to begin
}
Thanks for your help!!!
↧
↧
Problem with Command Line Argument in Visual Studio 2012
I hav a simple console application that takes command line in VS 2012.
While inputting cin, I receive this message for >>
binary '>>' : no operator found which takes a right-hand operand of type 'utility::string_t' (or there is no acceptable conversion)
Code:
#include "stdafx.h"
#include <iostream>
#include <string.h>
int _tmain(int argc, _TCHAR* argv[])
{
utility::string_t strName;
std::cin >> strName;
}
Quote:
binary '>>' : no operator found which takes a right-hand operand of type 'utility::string_t' (or there is no acceptable conversion)
↧
Input strings in VC++ 2012
I have a source code
Now I want to take some input from the user and then post it in req.reply. For that I tried this
But somehow the compiler throws this error.
1>Listener.cpp(36): error C3493: 'strName' cannot be implicitly captured because no default capture mode has been specified
1>Listener.cpp(36): error C2664: 'pplx::task<void> web::http::http_request::reply(web::http::status_code,const utility::string_t &,utility::string_t) const' : cannot convert parameter 2 from 'std::string' to 'const utility::string_t &'
1> Reason: cannot convert from 'std::string' to 'const utility::string_t'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
Code:
listener.support(methods::GET, [](http_request req)
{
std::cout << "Serving GET" << std::endl;
//req.reply(status_codes::OK, U("input string!"), U("text/html"));
req.reply(status_codes::OK, U("<html><body><h1>It works!</h1>(Casablanca, that is a GET Request.)</body></html>"), U("text/html"));
});
Code:
std::string strName;
std::cin >> strName;
req.reply(status_codes::OK, strName, U("text/html"));
Quote:
1>Listener.cpp(36): error C3493: 'strName' cannot be implicitly captured because no default capture mode has been specified
1>Listener.cpp(36): error C2664: 'pplx::task<void> web::http::http_request::reply(web::http::status_code,const utility::string_t &,utility::string_t) const' : cannot convert parameter 2 from 'std::string' to 'const utility::string_t &'
1> Reason: cannot convert from 'std::string' to 'const utility::string_t'
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========
↧
MYSQL VC++ Connection Dealy
Hi,
I'm using VS2012 with MYSQL SERVER 5.6 and ODBC 5.2.
How can i reduce the connection delay?
My code,
I'm using VS2012 with MYSQL SERVER 5.6 and ODBC 5.2.
How can i reduce the connection delay?
My code,
Code:
CDatabase database;
CString sDsn;
sDsn.Format("Driver={MySQL ODBC 5.2 ANSI Driver};Server=127.0.0.1;Database=Test;User=root;Password=client;Option=4;");
TRY
{
// Open the database
database.Open(NULL,false,false,sDsn,false);
//Execute the Insert, Delete & Update query
database.Close();
}
CATCH(CDBException, e)
{
// If a database exception occured, show error msg
AfxMessageBox("Database error: "+e->m_strError);
}
END_CATCH;
↧
↧
User Callback & CResource Exception
Hi,
In my Project, I'm using my Parent Dialog(TestDlg) as a background dialog.
Child Dialog 1 = Main.cpp & Child Dialog 2 = Dummy.cpp
1. I like to call both dialog continuously one by one.
Using Timer function i called continuously the dialogs.
After 5 minutes getting an error, "0xC000041D An unhanded Exception was encountered during a User Callback".
2. Then, I'm using CGdiPlusBitmap.cpp file to load PNG image into buttons.
After 5 minutes getting an error - "CResource Exception".
For your reference test code attached.
In my Project, I'm using my Parent Dialog(TestDlg) as a background dialog.
Child Dialog 1 = Main.cpp & Child Dialog 2 = Dummy.cpp
1. I like to call both dialog continuously one by one.
Using Timer function i called continuously the dialogs.
After 5 minutes getting an error, "0xC000041D An unhanded Exception was encountered during a User Callback".
2. Then, I'm using CGdiPlusBitmap.cpp file to load PNG image into buttons.
After 5 minutes getting an error - "CResource Exception".
For your reference test code attached.
↧
Can't make this program run.
Hello,
I downloaded this program foilmaker. I can't get it to run.
this is the error I get:
![Name: foil maker.jpg
Views: 50
Size: 10.8 KB]()
I download the dll and put it in my XP 32 file. then I try to reg. it and it would not let me do it. said could not find dll.
I hope some one can help.
Oh I am not here just for that. I have been playing with C++ for many years. I have a old compiler I paid , I think a $100.00 for many years ago. a lot of money then. VC++ 6.0. Now that I have time I want to start writing programs again. I also have been making game for over ten years with Dark Basic Pro.
Thank you for your help
renny
I downloaded this program foilmaker. I can't get it to run.
this is the error I get:
I download the dll and put it in my XP 32 file. then I try to reg. it and it would not let me do it. said could not find dll.
I hope some one can help.
Oh I am not here just for that. I have been playing with C++ for many years. I have a old compiler I paid , I think a $100.00 for many years ago. a lot of money then. VC++ 6.0. Now that I have time I want to start writing programs again. I also have been making game for over ten years with Dark Basic Pro.
Thank you for your help
renny
↧
XML Parsing
In VC++ is there any inbuilt class for storying values inside an XML File, without using CLI?
↧
Problem with While Switch statement
I'm a little confused as to why i cant get this first statement to print out what I need
Code:
#include <cstdlib>
#include <iostream>
#include <cmath>
using namespace std;
int leapYear;
int Year;
char a;
int num;
int main()
{
// intro to the program.
cout << " Enter a 2 digit month:" << endl;
cin >> a;
while (num == 01)
{
switch (a)
{
case 01 :
cout << "January" << endl;
}
↧
↧
IE6 source code
As far as I know, Microsoft has made public IE6 source code ... Am I right ? If yes, where can I find it, becase I was wide search for this, without successful ... whare can I find it ?
↧
Getting the name of the current savefile
Well, the title pretty much says it all :)
When I have loaded a savefile with Serialize, is there some way of telling the name of the currently loaded savefile?
Thank you in advance!
When I have loaded a savefile with Serialize, is there some way of telling the name of the currently loaded savefile?
Thank you in advance!
↧
push_back(new triangle)
Hi,
In C++ by FLTK, to define a circle we use some code like this:
And we can using vector_ref put and save them in a vector, like:
OK, those were about Circle and no problem till now!
Triangle can be defined like this for using in codes:
and this is a vector to saving them:
The problem is that how to save/put triangles/polygons into that vp vector using new keyword like the circle does?
My sig: Save Cobani.
In C++ by FLTK, to define a circle we use some code like this:
Code:
Circle c(Point(x,y), r);
Code:
Vector_ref<Circle> vc;
vc.push_back(new Circle(Point(x,y),r));
OK, those were about Circle and no problem till now!
Triangle can be defined like this for using in codes:
Code:
Graph_lib::polygon poly;
poly.add(Point(x1,y1),r1);
poly.add(Point(x2,y2),r2);
poly.add(Point(x3,y3),r3);
Code:
Vector_ref<Graph_lib::Polygon> vp;
My sig: Save Cobani.
↧
CMFCToolBar::ReplaceButton() has no effect
actually I want to solve a quite simple thing, but I spent already the whole day...now I am running out of ideas!
The requested behaviour: depending on program state I want to display different buttons at the Toolbar.
At first step, I tried to exchange a button in CMainFrame::OnCreate(...) !! It is a SDI sample
the retcode '1' says, that button is exchanged, but nothing happened. The original button image and text from resource toolbar is still displayed.
Hint: the IDB_GO_ONLINE ID is the ID of a bitmap resource, which I have created with same size and resolution than toobar (16x15,24 Bit)
Could anybody help?
The requested behaviour: depending on program state I want to display different buttons at the Toolbar.
At first step, I tried to exchange a button in CMainFrame::OnCreate(...) !! It is a SDI sample
Code:
{
CMFCToolBarButton button(ID_ONLINE,IDB_GO_ONLINE,(LPCTSTR)"ONLINE");
int ret = m_wndToolBar.ReplaceButton(ID_ONLINE,button);
TRACE("%d",ret);
}
Hint: the IDB_GO_ONLINE ID is the ID of a bitmap resource, which I have created with same size and resolution than toobar (16x15,24 Bit)
Could anybody help?
↧
↧
WMI Get() fail
Hi,
in the following code I want to iterate through "Win32_OperatingSystem" to find all variables and their values. Using GetNames() I can get the names of all the variables but the subsequent Get() call fails to return a value. Can anyone help please?
in the following code I want to iterate through "Win32_OperatingSystem" to find all variables and their values. Using GetNames() I can get the names of all the variables but the subsequent Get() call fails to return a value. Can anyone help please?
Code:
//connect to WMI
std::wstring wmiClass = L"Win32_OperatingSystem";
CComPtr< IWbemLocator > pLocator;
HRESULT hResult = pLocator.CoCreateInstance( CLSID_WbemAdministrativeLocator, nullptr, CLSCTX_INPROC_SERVER );
if ( SUCCEEDED( hResult ) )
{
//connect to local Common Information Model schema service with current credentials
CComPtr< IWbemServices > pServices;
hResult = pLocator->ConnectServer( _T( "ROOT\\CIMV2" ), nullptr, nullptr, nullptr, WBEM_FLAG_CONNECT_USE_MAX_WAIT, nullptr, nullptr, &pServices );
if ( SUCCEEDED( hResult ) )
{
CComPtr< IWbemClassObject > pClassObject;
hResult = pServices->GetObject( _bstr_t( wmiClass.c_str() ), 0, nullptr, &pClassObject, nullptr );
if ( SUCCEEDED( hResult ) )
{
SAFEARRAY* pArray = nullptr;
hResult = pClassObject->GetNames( nullptr, WBEM_FLAG_ALWAYS | WBEM_FLAG_NONSYSTEM_ONLY, nullptr, &pArray );
if ( SUCCEEDED( hResult ) && ( nullptr != pArray ) )
{
long lowerBound;
long upperBound;
SafeArrayGetLBound( pArray, 1, &lowerBound );
SafeArrayGetUBound( pArray, 1, &upperBound );
BSTR propertyName;
VARIANT variantValue;
for ( long i = lowerBound; i <= upperBound; ++i )
{
hResult = SafeArrayGetElement( pArray, &i, &propertyName );
if ( SUCCEEDED( hResult ) )
{
hResult = pClassObject->Get( propertyName, 0, &variantValue, nullptr, nullptr );
if ( SUCCEEDED( hResult ) )
{
//I can get to this line but variantValue is not set
}
}
SysFreeString( propertyName );
}
}
SafeArrayDestroy( pArray );
}
}
}
↧
Access a username/password protected url through C++
I'm an individual developer (not a professional developer. I'm a graphic designer who likes to code ;) ) and I mainly code plugins for Cinema 4D (I don't know if anyone knows this application).
I used to code in COFFEE (a javascript like language, only for Cinema 4D) and python.
But, recently, I started coding in C++.
I start my development on a Mac, using Xcode. But then, to generate Windows versions of my plugins, I take my source code to Visual Studio, perform the necessary adjustments, and create Win32 and Win64 code.
Lately, I was trying to devise a scheme to protect my plugins from being pirated. Yes, I know it is virtually impossible, but if I could make it harder for hackers to crack my plugins, it would be fine.
I made it work fine in python and in C++, but only in Xcode.
In Windows it is a headache. I only need to be able to access a username/password protected folder in my server and check if there is a file there. I don't even need to read the content of the file (but it would be nice to be able to do that too).
I started out using the cURL library but it is so complicated to make it work. I need 32 and 64 bit versions. Then I also have to include three .dll files in the folder of the application (that means that I would have to ask to the people who buy my plugins to copy three additional files to the main application folder... not a good thing :( )
So, would anyone point me in the right direction to find a way to access a username/password protected folder on the net? (the username/password is generated in my code so, of course, I know what are the username/password to provide).
Also, I would need a way for the code to be completely self-contained, meaning that the users would not have to manually add any other files (libraries), besides the folder containing my plugin.
And, if the solution was free, it would be great. I'm a freelancer and I don't even sell my plugins for a lot of money.
Thank you all, in advance.
I used to code in COFFEE (a javascript like language, only for Cinema 4D) and python.
But, recently, I started coding in C++.
I start my development on a Mac, using Xcode. But then, to generate Windows versions of my plugins, I take my source code to Visual Studio, perform the necessary adjustments, and create Win32 and Win64 code.
Lately, I was trying to devise a scheme to protect my plugins from being pirated. Yes, I know it is virtually impossible, but if I could make it harder for hackers to crack my plugins, it would be fine.
I made it work fine in python and in C++, but only in Xcode.
In Windows it is a headache. I only need to be able to access a username/password protected folder in my server and check if there is a file there. I don't even need to read the content of the file (but it would be nice to be able to do that too).
I started out using the cURL library but it is so complicated to make it work. I need 32 and 64 bit versions. Then I also have to include three .dll files in the folder of the application (that means that I would have to ask to the people who buy my plugins to copy three additional files to the main application folder... not a good thing :( )
So, would anyone point me in the right direction to find a way to access a username/password protected folder on the net? (the username/password is generated in my code so, of course, I know what are the username/password to provide).
Also, I would need a way for the code to be completely self-contained, meaning that the users would not have to manually add any other files (libraries), besides the folder containing my plugin.
And, if the solution was free, it would be great. I'm a freelancer and I don't even sell my plugins for a lot of money.
Thank you all, in advance.
↧
Slow regex issue (VS2010)
The code below works, and finds the match (as expected), it's a simplified version of a (much) more elaborate regex to extract data packets out of textfile.
With VS2010 however it's taking well over 10 seconds to evaluate the below code (on a fast machine)
Obviously it's backtracking and the time taken goes up a lot mainly by increasing the length of 'non empty line 1'. The thing is... There's no reason for it to backtrack.
AM I doing something wrong ? is this a bug in VS2010's regex implementation ?
Will try this in VS2012/2013 in a bit, don't have those available on this site.
With VS2010 however it's taking well over 10 seconds to evaluate the below code (on a fast machine)
Obviously it's backtracking and the time taken goes up a lot mainly by increasing the length of 'non empty line 1'. The thing is... There's no reason for it to backtrack.
AM I doing something wrong ? is this a bug in VS2010's regex implementation ?
Will try this in VS2012/2013 in a bit, don't have those available on this site.
Code:
//------------------------------------------------------------------------------------
void RegexTest()
//------------------------------------------------------------------------------------
{
std::cmatch res;
std::regex rePacket( "(Mon|Tue|Wed|Thu|Fri|Sat|Sun)"
"[\\r\\n]*" // empty lines
"([^\\n\\r]*)" // non empty line 1
"[\\r\\n]*" // empty lines
"([^\\n\\r]*)" // non empty line 2
"[\\r\\n]*" // empty lines
"([^\\n\\r]*)" // non empty line 3
"[\\r\\n]*" // empty lines
"([^\\n\\r]*)" // non empty line 4
"[\\r\\n]*" // empty lines
"----" // closer line
"[\\r\\n]*" // empty lines
);
const char szData[] = "Thu\r\n"
"The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\r\n"
"One two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen.\r\n"
"And another line of text to test this regex\r\n"
"And this is the last line of text to test this regex\r\n"
"----\r\n"
"Sun\n\n"; // Next item (not relevant for this sample)
if (std::regex_search( szData, res, rePacket, std::regex_constants::match_continuous))
{
CString strDay=res[1].str().c_str();
CString str1=res[2].str().c_str();
CString str2=res[3].str().c_str();
CString str3=res[4].str().c_str();
CString str4=res[5].str().c_str();
}
}
↧
Time and _findfirst are melting my brain.
Someone sent me a hard disk and I have written a program to process a few thousand files on that disk.
Let me give an example:
If I look at a file's time using Windows Explorer it might be 2/8/2013 8:09 AM.
In my code I am using _findfirst to iterate through the files. _findfirst provides data in a _finddata_t structure. The "time_write" member is a time_t value. When I print out the value of time_write for that file it will be 2/8/2013 9:09 AM.
The times are one hour different. I assume this is a timezone issue or daylight savings time issue.
QUESTION: How do i know how much to compensate to correct the time? In my program, I want to use the 8:09 AM time because I know that is the correct time my users will want to see.
If tomorrow I get another hard disk that comes from a third different location in the world, how will I know how much to compensate?
Let me give an example:
If I look at a file's time using Windows Explorer it might be 2/8/2013 8:09 AM.
In my code I am using _findfirst to iterate through the files. _findfirst provides data in a _finddata_t structure. The "time_write" member is a time_t value. When I print out the value of time_write for that file it will be 2/8/2013 9:09 AM.
The times are one hour different. I assume this is a timezone issue or daylight savings time issue.
QUESTION: How do i know how much to compensate to correct the time? In my program, I want to use the 8:09 AM time because I know that is the correct time my users will want to see.
If tomorrow I get another hard disk that comes from a third different location in the world, how will I know how much to compensate?
↧
↧
Help with writing a function that sorts
Hello,
So I have to write a function called sortMe that sorts the elements of an array in numerical order from highest to lowest values (descending order) or vice versa (ascending order).
I was able to this but not how I'm supposed to.
The assignment asks to: NOT re-arrange elements in the array; instead, it uses a second array, an array of indexes for the elements in the original array and then sortMe sorts the second array based on the values in the original
array. A sorted version of the original array can then be produced with these sorted indexes.
Header of the function sortMe must be as shown below:
void sortMe(int array[],int sortedIndexes [], int size, char mode)
When mode is 'a', the function sorts the array in the ascending order, and when mode is 'd', the function sorts it in the descending order.
Declare and initialize the array array.
Declare the array sortedIndexes but do not initialize it. You are going to play with the array sortedIndexes in the
function sortMe.
EXAMPLE:
int array[5]={3, 5,-1,10,0};
int sortedIndexes[5];
sortMe(array,sortedIndexes, 5, 'a');
After the function call, the elements of the array sortedIndexes should
be: 2,4,0,1,3
Please notice that the function does not e-arrange the elements in the array.
So I got it to ascend and descend by choosing a mode but I did this by rearranging, which is what it asks me not to do. I need help figuring out how to use the other array. Thank you.
So I have to write a function called sortMe that sorts the elements of an array in numerical order from highest to lowest values (descending order) or vice versa (ascending order).
I was able to this but not how I'm supposed to.
The assignment asks to: NOT re-arrange elements in the array; instead, it uses a second array, an array of indexes for the elements in the original array and then sortMe sorts the second array based on the values in the original
array. A sorted version of the original array can then be produced with these sorted indexes.
Header of the function sortMe must be as shown below:
void sortMe(int array[],int sortedIndexes [], int size, char mode)
When mode is 'a', the function sorts the array in the ascending order, and when mode is 'd', the function sorts it in the descending order.
Declare and initialize the array array.
Declare the array sortedIndexes but do not initialize it. You are going to play with the array sortedIndexes in the
function sortMe.
EXAMPLE:
int array[5]={3, 5,-1,10,0};
int sortedIndexes[5];
sortMe(array,sortedIndexes, 5, 'a');
After the function call, the elements of the array sortedIndexes should
be: 2,4,0,1,3
Please notice that the function does not e-arrange the elements in the array.
Code:
#include <iostream>
using namespace std;
void sortMe(int[], int, char);
void main()
{
int arr[6] = { 14, -5, 5, 0, 22, -99 };
char input;
cout << "Please select in what order you want the numbers sorted. \nFor ascending order press a. For descending order press d: \n";
cin >> input;
if (input == 'a'){
sortMe(arr, 6, 'a');
for (int i = 0; i < 6; i++)
cout << arr[i] << "\t"; //I want to print the sortedIndexes array not array
}
else if (input == 'd'){
sortMe(arr, 6, 'd');
for (int j = 0; j < 6; j++)
cout << arr[j] << "\t";
}
else
cout << "Please make a correct selection" << endl;
system("pause");
}
void sortMe(int array[], int size, char mode)
{
int temp;
if (mode == 'd') //descending order
{
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (array[j] > array[i])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
else if (mode == 'a') //ascending order
for (int i = 0; i < size; i++)
{
for (int j = i + 1; j < size; j++)
{
if (array[j] < array[i])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
}
↧
MSChart - VTChart Error
Hi,
I'm using MSChart Control in my parent dialog.
continuously clicked the parent to child dialog and vise verse.
After 25th time getting "VTChart Error - Resource unavailable Error".
How can i resove this?
I'm using MSChart Control in my parent dialog.
continuously clicked the parent to child dialog and vise verse.
After 25th time getting "VTChart Error - Resource unavailable Error".
How can i resove this?
↧
Re-input variables after loop ended
I just started programming and want to make the game cows and bulls. The problem is that after the loop has ended and both vectors are not the same I want the user to 're-input' the starting variables a,b,c&d but I don't know how to.
thx in advance guys
thx in advance guys
Code:
#include "std_lib_facilities.h"
int comparison(int a, int b, int c, int d)
{
vector<int>bc={ 1, 2, 4, 9 };
cin >> a >> b >> c >> d;
vector<int>comp = { a, b, c, d };
int s = 0;
for (int i = 0; i < 4; ++i){
if (bc[i] == comp[i]) //all numbers in same place
{
s = s + 1;
}
}
return s;
}
int cow(int a, int b, int c, int d)
{
vector<int>bc = { 1, 2, 4, 9 };
cin >> a >> b >> c >> d;
vector<int>cowcomp = { a, b, c, d };
int k = 0;
sort(bc);
sort(cowcomp);
for (int i = 0; i < 4; ++i){
if (bc[i] == cowcomp[i]) // all numbers the vectors have in common
{
k = k + 1;
}
}
return k;
}
int main()
{
cout << "Enter 4 digits followed by a non-digit.\n";
int a; // initialize variables
int b;
int c;
int d;
cin >> a >> b >> c >> d;
int s = comparison(a, b, c, d); //return all bulls
int k = cow(a, b, c, d); // return all cows+bulls
int realcow = k - s; //determine all cows
cout << "There are " << s << " bulls and "<<realcow<<" cows\n";
}
↧