因此,正如标题在我的C程序中所说的那样,我得到的命令行输入与通常的argc和argv一样。然而,经过进一步的检查,我意识到我的传入argc是一个完全随机的数字。
这是我的程序的开始,我想知道argc的值。
void debug(char *format, ...) {
if(DEBUG_MODE!=0) return;
va_list arg;
va_start (arg, format);
(void) fprintf (stdout, format, arg);
va_end (arg);
}
int main(int argc, char *argv[]) {
debug("ARGC %i\n", argc);
其中debug()只是一种更好的打印方法。所以,当我用:
开始我的程序时./server
我得到的结果是:
ARGC -1786798448
所以我真的不明白这一点。
答案 0 :(得分:1)
.WithMany(e => e.SupportOfTeams)
类型的变量不是您可以传递给#include <QCoreApplication>
#include <iostream>
#include <QSerialPort>
#include <QDebug>
#include <Windows.h>
#include <QElapsedTimer>
using namespace std;
QSerialPort serial;
QElapsedTimer timer;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
serial.setPortName("ttyUSB0");
serial.open(QIODevice::ReadWrite);
serial.setBaudRate(QSerialPort::Baud9600);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
while(!serial.isOpen()) serial.open(QIODevice::ReadWrite);
if (serial.isOpen() && serial.isWritable())
{
qDebug() << "Serial is open";
QByteArray output;
QByteArray input;
while(true)
{
output = "a";
serial.write(output);
serial.flush();
timer.start();
// Sleep(80);
qDebug() << timer.elapsed();
serial.waitForBytesWritten(100);
serial.waitForReadyRead(100);
if(serial.bytesAvailable()>=18)
input = serial.read(18);
qDebug()<<input;
}
}
return a.exec();
}
的内容。
尝试:va_list
请参阅vprintf